提交 cbdf0fab 编写于 作者: W wusongqing

updated docs

Signed-off-by: Nwusongqing <wusongqing@huawei.com>
上级 43db99cf
# ***ExampleName*** Subsystem/Part
- [Introduction](#Introduction)
- [Directory Structure](#Directory-Structure)
- [Constraints](#Constraints)
- [Compilation and Building](#Compilation-and-Building)
- [Usage](#Usage)
- [Available APIs](#Available-APIs)
- [How to Use](#How-to-Use)
- [Repositories Involved](#Repositories-Involved)
[Title Description] Use **Subsystem** or **Part** based on the Readme file type.
![Subsystem-readme](figures/figure01.png)
## Introduction
[Writing Instructions] **Mandatory**. The following contents must be included:
**Overall introduction.** Describe the subsystem from the following aspects: background (role in the entire OpenHarmony architecture), functions, use cases, and supported devices.
**Architecture diagram.** Provide an architecture diagram and explain the main components in the architecture.
**If this document is about a part, which is part of a subsystem, and related concepts of the subsystem can help understand the part, you are advised to include the following information:**
**For more concepts related to the ***exampleName*** subsystem, see ***exampleName***. (Provide the link to the subsystem readme.)**
The precautions for writing are as follows:
| Item| Requirement|
| -------- | -------- |
| **A.1** | **Content**|
| A.1.1 | Style: Use formal language and avoid colloquial language.|
| A.1.2 | Compliance: Do not use terms that have compliance and legal risks, such as concepts specific to third-party intellectual property rights.|
| A.1.3 | Concise: Provide only necessary and minimum information to instruct developers to complete operations as soon as possible.|
| A.1.4 | Correct: The code and parameters in the Readme file must be consistent with the actual product information.|
| A.1.5 | Accurate: Use accurate rather than ambiguous description.|
| A.1.6 | Consistent: Words and concepts in the Readme file must be used consistently across the file and compliant with the glossary. The full name of an acronym or abbreviation must be provided when it appears for the first time in the file.|
| A.1.7 | Specific: Use specific words. For example, when indicating the quantity or degree, do not use "more" or "less". Use specific numbers instead.|
| **A.2** | **Format**|
| A.2.1 | Use punctuation correctly. End a sentence with punctuation.|
| A.2.2 | Present the content clearly, for example, by using bullets or categories. Do not include a single bullet or extra empty lines.|
| A.2.3 | Do not add a space between an English word and Chinese word.|
| A.2.4 | Use valid and specific links that provide direct redirection or download. It is recommended that relative links in Gitee instead of absolute links be used.|
| A.2.5 | For auxiliary description, use the "Note" format. For declaration in advance, use the "Notice" format.|
| **A.3** | **Tables**|
| A.3.1 | Include a caption for each table. Use nouns or noun phrases in the caption.|
| A.3.2 | Include a header for each table. Ensure that a table contains at least two rows and two columns.|
| A.3.3 | If there is no content in a table cell, use an underscore (_) in the cell, rather than leaving it blank.|
| **A.4** | **Figures**|
| A.4.1 | Do not include figures of religious beliefs.|
| A.4.2 | Include a caption for each figure. Use nouns or noun phrases in the caption.|
| A.4.3 | Figures must be clear, legible, complete, and easy to read. For example, a flowchart must contain "Start" and "End".|
| A.4.4 | Each figure must have clear logic and be provided with relevant text descriptions.|
| A.4.5 | It is recommended that each figure, in .png format, have the size less than or equal to 150 KB, the height about 640 px, and the width less than or equal to 820 px.|
| A.4.6 | Try not to include text in figures. If text is required, make sure the text language is consistent with your file's language.|
The following shows an architecture diagram. Pay attention to the **color and format requirements**.
**Figure 1** Subsystem architecture
![Architecture](figures/figure02.png)
## Directory Structure
[Writing Instructions] **Mandatory**. Describe the code directory structure of the project repository and function description of the corresponding directory.
```undefined
/foundation/ace
├── frameworks # Framework code
│ └── lite
│ ├── examples # Sample code
│ ├── include # Exposed header files
│ ├── packages # JS implementation
│ ├── src # Source code
│ ├── targets # Configuration file of each target device
│ └── tools # Tool code
├── interfaces # APIs exposed externally
│ └── innerkits # Header files for internal subsystems
│ └── builtin # Third-party module APIs provided by the JS application framework
```
## Constraints
[Writing Instructions] **Optional**. Include the conditions for project running, for example, a specific programming language or a specific operating system with a given version.
| Item| Requirement|
| -------- | -------- |
| D.1.1 | Clearly specify the function limitations or operation restrictions.|
| D.1.2 | Describe only constraints that affect task development or user experience.|
| D.1.3 | Describe operations that are prone to errors in the procedure, but not in this section.|
## Compilation and Building
[Writing Instructions] **Optional**. This section is not required for a subsystem Readme file. Include this section in a part Readme file based on the actual conditions.
## Usage
### Available APIs
[Writing Instructions] **Optional**. Describe the APIs related to the development guide so that developers can have a general understanding of the APIs before development. **This section is not required for a subsystem Readme file.** Determine whether this section is required for a part Readme file based on the actual conditions. If the corresponding API reference is available, you do not need to include this section. The precautions for writing are as follows:
| Item| Requirement|
| -------- | -------- |
| J.1.1 | Include only APIs relevant to the development task.|
| J.1.2 | Provide only main APIs if there are too many APIs.|
### How to Use
[Writing Instructions] **Optional**. Provide a concept introduction for a subsystem Readme file and function introduction for a part Readme file. If the corresponding development guide is available, you can provide a link, rather than details here.
The table below describes the writing requirements. After finishing the writing, check your content against these requirements one by one.
| Item| Requirement|
| -------- | -------- |
| **F.1** | **Writing a Development Procedure**|
| F.1.1 | Complete: Provide all mandatory steps.|
| F.1.2 | Clear: The logic of the writing must be clear and reasonable. The overview, preparations, and operations in the document must be described by following certain logic, and the chapters should not be broken or contradictory.|
| F.1.3 | Sentence pattern for tasks: Use verbs + nouns to describe actions in titles or sentences.|
| F.1.4 | Prevention in advance: If the operation involves restrictions, errors, or potential risks, describe them in advance.|
| F.1.5 | Clear steps-1: Describe the purpose of each step, no matter whether it is simple or not.|
| F.1.6 | Clear steps-2: Specify the environment, tools, operations, and how-to.|
| F.1.7 | If an operation is optional, specify the conditions in which the operation is required.|
| F.1.8 | After the development procedure is complete, specify the expected results.|
| **F.2** | **Writing a Code Segment**|
| F.2.1 | 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.|
| F.2.2 | Provide comments for key sections and key steps in the code.|
| F.2.3 | The code display meets the code indentation requirements.|
| F.2.4 | If an API call is involved in a step, provide the API and its usage description or sample code. The code should come from specific instances.|
## Repositories Involved
[Writing Instructions] **Mandatory**. List the links of all related repositories of the subsystem where the current repository is located and mark the current repository in bold.
Example:
[Kernel](https://gitee.com/openharmony/docs/blob/master/en/readme/kernel-subsystem.md)
[drivers\_liteos](https://gitee.com/openharmony/drivers_liteos/blob/master/README.md)
**kernel\_liteos\_a**
\ No newline at end of file
# ***ExampleName*** Development Board
*Template positioning: When a third-party development board is introduced to OpenHarmony, the board vendor needs to provide an introduction to the board for developers to quickly understand the board.*
## Introduction
*[Writing Instructions]*
*Describe the functions, scenarios, and key features supported by the development board.*
*Provide a picture to show the appearance of the development board.*
*Provide a bottom board picture.*
*Provide a functional block diagram and an introduction.*
*Name the figures after the development board.*
*Reference document: https://gitee.com/openharmony/docs/blob/master/en/device-dev/quick-start/quickstart-lite-introduction-hi3861.md*
********
## Development Board Specifications
*[Writing Instructions] Provide the module and hardware specifications of the development board.*
## (Optional) Constraints
*[Writing Instructions] Describe the restrictions and suggestions on functions, features, and specifications of the development board, if any.*
********
## Key Features
*[Writing Instructions] List supported key features of OpenHarmony.*
## Pin Definition
*[Writing Instruction] Describe the definitions of I/O pins, and how to configure pins and connect pins to external components.*
## Setting Up the Development Environment
### System Requirements
*[Writing Instruction] Describe the dependency of the development board on the OpenHarmony system, software environment, and hardware environment.*
### Required Tools
*[Writing Instruction] Provide the paths for downloading the tools used to build and debug the development board.*
### Setup Process
*[Writing Instruction] Describe the procedure for setting up the environment step by step.*
## Building and Debugging
### Building
*[Writing Instruction] Describe how to use OpenHarmony and update OpenHarmony binary files and devices on the development board.*
### Burning
*[Writing Instruction] Describe how to burn images step by step.*
### Running
*[Writing Instruction] Describe how to check whether the lighting, running, and output of the development board are proper.*
### Debugging
*[Writing Instruction] Describe how to debug common errors on the development board.*
## First Demo
*[Writing Instruction] Provide a quick start example and running effect based on the development board, or provide the link of the demo source code.*
## References
*[Writing Instruction] Provide links to the reference documents, samples, and FAQs.*
## (Optional) Acknowledgments
*[Writing Instruction] Provide acknowledgements to third-party contributors.*
# OpenHarmony 3.1 Beta
- [Version Description](#Version-Description)
- [Version Mapping](#Version-Mapping)
- [Source Code Acquisition](#Source-Code-Acquisition)
- [Acquiring Source Code Using the repo Tool](#Acquiring-Source-Code-Using-the-repo-Tool)
- [Acquiring Source Code from a Mirror](#Acquiring-Source-Code-from-a-Mirror)
- [What's New](#What-Is-New)
- [Feature Updates](#Feature-Updates)
- [API Updates](#API-Updates)
- [Chip and Development Board Adaptation](#Chip-and-Development-Board-Adaptation)
- [Samples &amp; Codelabs](#samples-amp-codelabs)
- [New Samples](#New-Samples)
- [New Codelabs](#New-Codelabs)
- [Resolved Issues](#Resolved-Issues)
- [Known Issues](#Known-Issues)
## Version Description
OpenHarmony 3.1 Beta provides the following enhancements over OpenHarmony 3.0 LTS:
- Enhanced basic capabilities for the standard system: The CMA usage is improved in the kernel. The background rendering module of RenderService is added to the Graphics subsystem. The STA and SoftAP features are provided for short-range communications. The geomagnetic field algorithm APIs are provided. The sensor driver model capability is enhanced. Application account query and subscription are supported. New globalization features are introduced. Unified build templates are provided for the Compilation and Building subsystem. Front-end compilation toolchains for Windows, macOS, and Linux are provided for the Multi-language Runtime subsystem. Previewer is supported for JS runtime. Six third-party JS libraries (JSON Processing, EventBus, VCard, Protobuf, RxJS, and libphonenumber) are supported. Time and time zone management is supported. The HiSysEvent module is added to DFX to provide query and subscription interfaces.
- Enhanced distributed capabilities for the standard system: The distributed device profile is added. Distributed data management supports cross-device synchronization and subscription. DSoftBus supports network switchover. The distributed file system supports StatFS APIs.
- Enhanced application framework capabilities for the standard system: The ArkUI-based custom drawing capability and Lottie animation capability are added. The implicit query and multi-HAP installation are added for the bundle management framework. Permission management, notification vibration setting, notification sound setting and query, do-not-disturb (DND) notification, and session notification are added for the Common Event and Notification subsystem.
- Enhanced system application capabilities for the standard system: Text input and landscape-mode layout display for the input method application, SMS application information management, call log and dialer display in the contacts application, and more options in **Settings** are supported.
- Enhanced capabilities for the mini system: The lightweight HiStreamer supports the customizable media pipeline framework. The Linux init process supports hot swap. The OS lightweight kernel and driver startup are optimized. The quick startup capability is supported.
## Version Mapping
**Table 1** Version mapping of software and tools
| Software/Tool| Version| Remarks|
| -------- | -------- | -------- |
| OpenHarmony | 3.1 Beta | NA |
| SDK | Ohos_sdk 3.1 Beta (API Version 8 Beta)| NA |
| (Optional) HUAWEI DevEco Studio| 3.0 Beta2 | Recommended for developing OpenHarmony applications|
| (Optional) HUAWEI DevEco Device Tool| 3.0 Beta2 | Recommended for developing OpenHarmony smart devices|
## Source Code Acquisition
### Acquiring Source Code Using the repo Tool
**Method 1 (recommended)**
Use the **repo** tool to download the source code over SSH. (You must have an SSH public key for access to Gitee.)
```
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
**Method 2**
Use the **repo** tool to download the source code over HTTPS.
```
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
```
### Acquiring Source Code from a Mirror
**Table 2** Mirrors for acquiring source code
| Source Code| Version| Mirror| SHA-256 Checksum|
| -------------------------------- | ------------ | ------------ | ---------------- |
| Full code base (for mini, small, and standard systems)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/code-v3.1-Beta.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/code-v3.1-Beta.tar.gz.sha256)|
| Hi3516 standard system solution (binary)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/standard_hi3516.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/standard_hi3516.tar.gz.sha256)|
| RK3568 standard system solution (binary)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/standard_rk3568.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/standard_rk3568.tar.gz.sha256)|
| Hi3861 mini system solution (binary)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/hispark_pegasus.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/hispark_pegasus.tar.gz.sha256)|
| Hi3516 mini system solution - LiteOS (binary)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/hispark_taurus.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/hispark_taurus.tar.gz.sha256)|
| Hi3516 mini system solution - Linux (binary)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/hispark_taurus_linux.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/hispark_taurus_linux.tar.gz.sha256)|
| Standard system SDK package (macOS)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/ohos-sdk-mac.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/ohos-sdk-mac.tar.gz.sha256)|
| Standard system SDK package (Windows/Linux)| 3.1 Beta | [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/ohos-sdk.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.1-Beta/ohos-sdk.tar.gz.sha256)|
| Compiler toolchain| - | [Download](https://repo.huaweicloud.com/harmonyos/os/2.0/tool_chain/)| |
## What's New
This version has the following updates to OpenHarmony 3.0 LTS.
### Feature Updates
**Table 3** New and enhanced features
| Subsystem| Standard System| Mini and Small Systems|
| -------- | -------- | -------- |
| Bundle management framework| -&nbsp;I4MBSE: Provides the home screen bundle management client.<br/>-&nbsp;I4MBSF: Supports cache clearing.<br/>-&nbsp;I4MBSG: Supports installation package information query.<br/>-&nbsp;I4MBSD: Supports multi-HAP installation.<br/>-&nbsp;I4MBSH: Supports signature verification during multi-HAP installation.<br/>-&nbsp;I4MBSC: Supports the **srcPath** field for modules and abilities.| NA |
| Distributed Scheduler subsystem| -I4MBRW: Samgr supports intra-process system ability list control.<br/>-I4MBRV: Samgr supports maintenance of the system service status list.<br/>-I4MBRZ: Samgr supports initialization of the full service list.<br/>-I4MBRY: Samgr supports maintenance of the system process status list.<br/>-I4MBRX: Samgr supports loading a specific system service.| NA |
| DeviceProfile subsystem| -I4NY23: Insertion, deletion, and query of local device profiles.<br/>-I4NY1X: Query of remote device profiles.<br/>-I4NY1T: Subscription to remote profile changes.<br/>-I4NY1W: Cross-device profile synchronization.| NA |
| Account subsystem| -I4MBQW: Application account addition and deletion.<br/>-I4MBQV: Restrictions on the basic information about application accounts.<br/>-I4MBQU: Application account subscription and unsubscription.<br/>-I4MBQT: Application account function setting and content modification.<br/>-I4MBQS: Application account information query.<br/>-I4IT3U: Basic information management for application accounts.| NA |
| Pan-sensor subsystem| -I3NJ96: Acceleration sensor data reporting.<br/>-I3NJ8H: Gyroscope sensor data reporting.<br/>-I3NJ7J: Ambient light sensor data reporting.<br/>-I3NJ76: Magnetic field sensor data reporting.<br/>-I4MBRP: Magnetic declination and dip.<br/>-I4MBRQ: Horizontal intensity and total intensity of the magnetic field.| NA |
| USB subsystem| I410OZ:<br/>-&nbsp;Querying the list of connected USB devices.<br/>-&nbsp;Obtaining the temporary permission to access USB devices.<br/>-&nbsp;Setting USB device configurations and interfaces.<br/>-&nbsp;Data transfer using USB devices.| NA |
| Multi-language Runtime subsystem| -&nbsp;I4MBUK: The default runtime of JS/TS is changed from quickjs to ARK. <br/>-&nbsp;I4MBUJ: The memory reclaim capability of ARK runtime is enhanced. The concurrent marking and concurrent compression algorithms are supported. Some regions can be selected for compression GC, reducing the GC pause time by 30%.| NA |
| Globalization subsystem| -&nbsp;Added globalization features: singular and plural rules, string sorting, phone number processing, calendar and local calendar, weights and measures and formatting, locale representations and attributes, time segment formatting, alphabet retrieval, Unicode character attributes, wrapping and line feed.<br/>-&nbsp;Supports system resources and rawfile resources.| NA |
| DSoftBus subsystem| -I4FZ29: DSoftBus provides the Ext API for transmission. <br/> -I4FZ25: DSoftBus supports network switching.| -I4FZ29: DSoftBus provides the Ext API for transmission. <br/> -I4FZ25: DSoftBus supports network switching.|
| Startup subsystem| NA | -I3XGJH: init basic environment building.<br/>-I3XGKV: System parameter management.<br/>-I3XGLN: init script management.<br/>-I3XGMQ: Basic permission management.<br/>-I3XGN8: Boot image building and loading.<br/>-I3XGKV: uevent management.<br/>-I3XGNM: Burning mode.|
| Media subsystem| NA | -I4BX5Z: HiStreamer supports audio playback and control.<br/>-I4BX8A: HiStreamer supports playback of MP3 and WAV audio files.<br/>-I4BX9E: HiStreamer playback engine framework requirements are met.<br/>-I4DK89: HiStreamer plugin framework requirements are met.<br/>-I4DK8D: HiStreamer performance and DFX requirements are met.|
| Graphics subsystem| New design of the OpenHarmony graphics stack:<br/>Added the background rendering feature to the UI framework.<br/>Supports the access to the background rendering module of RenderService from ArkUI components.| NA |
| Kernel subsystem| Kernel (Linux 5.10): <br/>-I4LUG4: Supports Contiguous Memory Area (CMA) reuse. (Currently, only Hi3516D V300 is supported.)<br/>-I4LX4G: Supports anonymous Virtual Memory Area (VMA) naming. (Currently, only Hi3516D V300 is supported.)| -I3ND6Y: Optimized OS kernel and driver startup performance.|
| Startup subsystem| NA | -I3NTCT: The Linux init process supports hot swap.|
| Distributed Data Management subsystem| NA | -I4H3JJ: Provides distributed objects for small-system devices.|
| Telephony subsystem| NA | -I4JQ2N: Provides HTTP JS APIs.<br/>-I4JQ3G: Supports HTTP 2.0.|
| Misc Services subsystem| I4MBQE:<br/>Enables applications to read the system time.<br/>Enables applications to read the system time zone.<br/>Provides time change notifications.<br/>Provides time zone change notifications.<br/>Provides minute change notifications.| NA |
| Compilation and Building subsystem| I4K7E3: Provides a unified compilation command as the compilation entry.<br/>-I4KCNB: Supports the unified gn template.| -I4MBQN: Supports a unified compilation entry and uses **build.sh** to compile mini- and small-system devices.<br/>-I4MBQP: Supports a unified compilation process.<br/>-I4MBQR: Supports unified product configuration.|
| File Storage subsystem| -I4MBS2: Provides StatFS JS interfaces for obtaining the total space and free space of a device.| NA |
| Driver subsystem| -I4L3KK: The drive capability of sensor components is enhanced. The sensor sampling rate can be dynamically configured, the three-axis direction can be statically configured, and the ambient light gain can be adjusted. <br/>-I4L3LF: The sensor driver model capability is enhanced to support cross-process service obtaining and invoking of sensor HDIs. <br/>-I4MBTS: Provides more capabilities for HDF input devices and supports data reporting of joystick devices. <br/>-I4MBTR: The default reference implementation of the Display HDI interface for the standard system is provided based on the DRM display architecture, which helps vendors to adapt the HDI. <br/>-I4HPR7: Provides the hcs macro parsing mechanism. During compilation, the hc-gen tool is used to parse the driver parameters into parameters involved in the macro definition. The driver accesses these macro definition parameters through the hcs macro-format interface. <br/>-I4KVJQ: Supports system-level sleep/wakeup of the Linux and LiteOS kernels. <br/>-I4L3ZZF: Supports synchronous/asynchronous power management invoking and provides a synchronous/asynchronous mechanism for HDF device sleep/wakeup management.| -I4L3KK: The drive capability of sensor components is enhanced. The sensor sampling rate can be dynamically configured, the three-axis direction can be statically configured, and the ambient light gain can be adjusted. <br/>Provides more capabilities for HDF input devices (running on Linux) and supports data reporting of joystick devices. <br/>-I4HPR7: Provides the hcs macro parsing mechanism. During compilation, the hc-gen tool is used to parse the driver parameters into parameters involved in the macro definition. The driver accesses these macro definition parameters through the hcs macro-format interface. <br/>-I4KVJQ: Supports system-level sleep/wakeup of the Linux and LiteOS kernels. <br/>-I4L3ZZF: Supports synchronous/asynchronous power management invoking and provides a synchronous/asynchronous mechanism for HDF device sleep/wakeup management.|
| ArkUI| - I4MBUY: Added **target** to the event to obtain the size.<br/>- I4MBUZ: The **\<Swiper>** component supports cache setting.<br/>- I4MBV1: The **\<Image>** component supports synchronous and asynchronous rendering setting.<br/>- I4MBV3: Added the component polymorphic style setting to the style setting feature.<br/>- I4MBV5: Added the pop-up text for menu content extension to the **\<AlphabetIndexer>** component.<br/>- I4MBV6: Added the custom container components to the component customization feature.<br/>- I4MBV7: Added scroll bar style customization.<br/>- I4MBV8: Added switching forbidden for the **\<Swiper>** component.<br/>- I4MBV9: Added tab bar content customization for the **\<Tabs>** component.<br/>- I4MBVA: Added title bar setting for the **\<Navigation>** component.<br/>- I4MBVB: Added toolbar display/hide control for the **\<toolbar>** component.<br/>- I4MBVC: Added content customization for the **\<toolbar>** component.<br/>- I4MBVD: Added the SysCap declaration compilation feature.<br/>- I4MBVE: Added the JSSDK compilation feature.<br/>- I4MBVF: Added the **Config.json** compilation feature.<br/>- I4MBVG: Added the breakpoint debugging feature for single-instance debugging.<br/>- I4MBVH: Added the attach debugging feature for single-instance debugging.<br/>- I4MBVI: Added the declarative paradigm compilation feature to support compilation and verification.<br/>- I4MBVJ: Added the JS module shared compilation feature.<br/>- I4MBVK: Added the HAR reference and compilation feature.<br/>- I4MBVL: Added the HPM reference and compilation feature.<br/>- I4MBVN: Added the vertical display of the slider bar.<br/>- I4MBVO: Added the content customization feature for the **\<popup>** component.<br/>- I4MBVP: Added the drawing capability for the **\<canvas>** component.<br/>- I4MBVQ: Enhanced the capabilities of the **\<canvas>** component.<br/>- I4MBVR: Added the touch target setting.<br/>- I4MBVS: Added the support for Lottie animation.<br/>- I4MBVT: Added the feature for obtaining the component size.<br/>- I4MBVU: Added content customization to the **\<menu>** component.<br/>- I4MBVV: Added the support for the **\<swipe>** gesture.<br/>- I4MBVW: Added the inspector capability for UI preview.<br/>- I4MBVX: Added the non-route file preview feature.<br/>- I4MBVY: Added the NAPI preview feature.<br/>- I4MBVZ: Added the declarative paradigm preview feature with the basic preview supported.<br/>- I4MBW2: Added the declarative paradigm hot loading feature for modification to the existing nodes.<br/>- I4MBW3: Added the declarative paradigm hot loading feature for node addition.<br/>- I4MBW4: Added the declarative paradigm hot loading feature for node deletion.<br/>- I4MBW5: Added the component preview feature and the page component preview.<br/>Added the universal attribute **touchable** to specify whether a component is touchable. <br/>Added the basic component **\<Marquee>**. <br/>Added the basic component **\<Gauge>**. <br/>Added the basic component **\<TextArea>**. <br/>Added the basic component **\<TextInput>**. <br/>Added the basic component **\<Toggle>**. <br/>Added the container component **\<Stepper>**. <br/>Added the container component **\<StepperItem>**. <br/>Added the global UI method **\<ActionSheet>**.| NA |
| DFX subsystem| -I4MBQH: Added the **HiSysEvent** class and provided the query and subscription interfaces.<br/>-I4MBQJ: Provides the tool query or subscription system event.<br/>-I4MBQL: Added the C interface of the **HiAppEvent** class.| NA |
| Application subsystems| -I4MBU1: Added **Settings** data management APIs. <br/>-I4MBU3: Added time setting. <br/>-I4MBU5: Supports sound management. <br/>-I4MBU6: Added **Settings** data management. <br/>-I4MBU7: Added **Settings** default value management.<br/>-I4MBU8: Added differentiated construction of multiple device forms in **Settings**.<br/>-I4MBU9: Added component-based notifications.| NA |
### API Updates
For details, see the following:
_[JS API Differences] (api-change/v3.1-beta/js-apidiff-v3.1-beta.md)_
_[Native API Differences](api-change/v3.1-beta/native-apidiff-v3.1-beta.md)_
_[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_
### Chip and Development Board Adaptation
For details about the adaptation status, see [SIG-Devboard](https://gitee.com/openharmony/community/blob/master/sig/sig-devboard/sig_devboard.md).
### Samples &amp; Codelabs
#### New Samples
**Table 4** New samples
| Name| Introduction| Programming Language|
| -------- | -------- | -------- |
| [eTS Common Event](https://gitee.com/openharmony/app_samples/tree/master/ability/EtsCommonEvent)| This sample shows how to use **CommonEvent** APIs in Extended TypeScript (eTS) to create subscribers and subscribe to, publish, and unsubscribe from common events.| eTS |
| [Air Quality](https://gitee.com/openharmony/app_samples/tree/master/common/AirQuality)| This sample implements a simple air quality app using JS. The app displays air quality information using line wrapping and historical data in a bar chart.| JS |
| [Distributed Calculator](https://gitee.com/openharmony/app_samples/tree/master/common/DistributeCalc)| This sample implements a simple calculator app using JS distributed features. The calculator can perform simple numerical calculations and start a remote calculator Feature Ability (FA) to perform collaborative calculation.| JS |
| [eTS Notification](https://gitee.com/openharmony/app_samples/tree/master/common/EtsNotification) | This sample shows how to create and delete a slot in eTS, and how to publish and cancel a notification.| eTS |
| [eTS Resource Management](https://gitee.com/openharmony/app_samples/tree/master/common/EtsResourceManager)| This sample shows how to call resource management APIs in eTS to obtain strings and images.| eTS |
| [Kika Keyboard](https://gitee.com/openharmony/app_samples/tree/master/CompleteApps/KikaInput) | This sample shows how to implement a lightweight input method app, Kika Keyboard, that can run on smart devices powered by OpenHarmony.| JS |
| [eTS Distributed Data Management](https://gitee.com/openharmony/app_samples/tree/master/data/eTSKvStore)| This sample shows how to use distributed data management in eTS, including creating a **KvManager** instance and using KvStore data transfer.| eTS |
| [Lightweight Data Storage](https://gitee.com/openharmony/app_samples/tree/master/data/eTSLiteStorage)| Lightweight data storage supports lightweight key-value operations and allows local apps to store a small amount of data. This sample shows how to add offerings to the shopping cart, remove offerings from the shopping cart, and saving the shopping cart. The shopping cart information is retained even when the app is closed. This reflects the lightweight storage feature.| eTS |
| [eTS Process](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/EtsProcess)| This sample shows how to obtain process information and start a child process to run a shell script in eTS. With this sample, you can obtain the running time, obtain and change the working directory of a process, send a signal to a specific process, start or close a child process, and exit the current process.| eTS |
| [eTS Running Lock] (https://gitee.com/openharmony/app_samples/tree/master/ETSUI/eTSRunninglock)| This sample shows how to test the running lock that prevents the system from entering sleep mode. It uses the black and white wallpapers to simulate the screen-off and screen-on states.| eTS |
| [String Codec](https://gitee.com/openharmony/app_samples/tree/master/ETSUI/StringCodec)| This sample shows how to output strings in a specified format and output error codes in text format. It also demonstrates string encoding and decoding.| eTS |
| [JS Audio Playback and Management] (https://gitee.com/openharmony/app_samples/tree/master/media/JsAudioPlayer)| This sample shows how to use the JS-based audio playback feature and set the volume.| JS |
| [JS Video](https://gitee.com/openharmony/app_samples/tree/master/media/JsVideo) | This sample shows how to use the JS UI component **\<video>** to implement video playback. You can play a video clip and pause the playback through the control bar of the **\<video>** component.| JS |
| [Dot Test](https://gitee.com/openharmony/app_samples/tree/master/security/JsDotTest)| This sample illustrates the dot test function, including application dotting and performance dotting.| JS |
| [JS Worker](https://gitee.com/openharmony/app_samples/tree/master/thread/JsWorker) | This sample shows how to start a worker thread in JS and implement the communication between the worker thread and host thread.| JS |
| [canvas Component](https://gitee.com/openharmony/app_samples/tree/master/UI/JsCanvas)| This sample shows how to use the **\<canvas>** component to customize drawings.| JS |
| [JS Dialog](https://gitee.com/openharmony/app_samples/tree/master/UI/JsDialog)| The JS UI component **\<dialog>** allows users to customize the dialog box style and layout. This sample shows how to use a custom dialog box to implement contacts addition and deletion.| JS |
| [JSList Offerings](https://gitee.com/openharmony/app_samples/tree/master/UI/JsList)| This sample shows how to apply **<list\>** component in the offering classification list. In **<listGroup\>**, two **<list-item\>** components are used to display the list in the collapsed and expanded state. After a list is touched, the corresponding list items are displayed.| JS |
| [JS Panel](https://gitee.com/openharmony/app_samples/tree/master/UI/JsPanel) | The JS container component **\<panel>** provides a lightweight, slidable content display panel. The panel attributes such as the triggering mode and display height can be customized. This sample shows how to display the offering details and service guarantee on the panel.| JS |
| [JS svg](https://gitee.com/openharmony/app_samples/tree/master/UI/JsSvg) | This sample shows how to use the JS component **<svg\>** and its child components, including **<rect\>**, **<circle\>**, **<ellipse\>**, **<path\>**, **<line\>**, **<polygon\>**, **<polyline\>**, **<text\>**, **<animate\>**, and **<animateTransform\>**.| JS |
| [Custom JS Components](https://gitee.com/openharmony/app_samples/tree/master/UI/JSUICustomComponent)| Custom components are existing components encapsulated based on service requirements. A custom component can be invoked multiple times in a project to improve the code readability. This sample shows how to use custom JS components, including basic usage, custom events, Props, and event parameters.| JS |
#### New Codelabs
**Table 5** New codelabs
| Name| Introduction| Programming Language|
| -------- | -------- | -------- |
| [Synced Sketchpad (eTS)](https://gitee.com/openharmony/codelabs/tree/master/Distributed/DistributeDatabaseDrawEts)| This codelab shows how to implement synchronous writing and interaction between multiple devices based on the distributed feature.| eTS |
| [Distributed Database](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData)| This codelab shows how to use the Distributed Data Service APIs to facilitate consistent data access between devices.| JS |
| [Relational Database](https://gitee.com/openharmony/codelabs/tree/master/Data/JSRelationshipData)| This codelab shows how to quickly develop database-related application services based on the relational database and data management capability.| JS |
| [Simplified Declarative UI Paradigm (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/SimpleGalleryEts)| This codelab shows how to implement a gallery app based on OpenHarmony eTS UI components.| eTS |
| [One-Time Development for Multi-device Deployment (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/MultiDeploymentEts)| This codelab shows how to implement one-time layout development for multi-device deployment based on OpenHarmony eTS UI components.| eTS |
| [Shopping (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/ShoppingEts)| This codelab shows how to implement a shopping app based on OpenHarmony eTS UI components.| eTS |
| [Intra- and Inter-page Navigation](https://gitee.com/openharmony/codelabs/tree/master/Ability/PageAbility)| This codelab shows how to switch between pages and within a page.| eTS |
| [Transition Animation (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/TransitionAnimtaionEts)| This codelab shows how to implement page transition, component transition, and transition of shared elements based on OpenHarmony eTS UI components.| eTS |
| [slider Usage (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/SliderApplicationEts)| This codelab shows how to use the OpenHarmony eTS UI component **\<slider>** to implement the animation effect when users adjust the size and speed of the windmill.| eTS |
| [Liquid Layout (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/FlowLayoutEts)| This codelab shows how to implement the liquid layout based on the OpenHarmony eTS UI components.| eTS |
| [Dialog Box (eTS)](https://gitee.com/openharmony/codelabs/tree/master/ETSUI/CustomDialogEts)| This codelab shows how to implement an alert dialog box and custom dialog box based on OpenHarmony eTS UI components.| eTS |
## Resolved Issues
**Table 6** Resolved issues
| Issue No.| Description|
| -------- | -------- |
| [I48IM7](https://gitee.com/openharmony/hiviewdfx_hilog/issues/I48IM7) | During the hilog pressure test, **hilogd** restarts unexpectedly, and the **hilog** command cannot be used.|
| [I48YPH](https://gitee.com/openharmony/security_deviceauth/issues/I48YPH) | [DSoftBus - Networking] During the testing of the getting-offline - discovery - networking cycle, there are 3 failures among all the 110 attempts.|
| [I4BVVW](https://gitee.com/openharmony/communication_dsoftbus/issues/I4BVVW) | [DSoftBus - Networking] The success rate of automatic networking between a standard-system device and mobile phone is 97%.|
| [I4BXY1](https://gitee.com/openharmony/multimedia_camera_standard/issues/I4BXY1) | There is no sound in the first few seconds of a video recording, the sound and image are out of sync, frame freezing occurs, and noises occur when the audio source was far away during recording.|
| [3ZJ1D](https://gitee.com/openharmony/kernel_liteos_a/issues/I3ZJ1D) | There is a possibility that the user mode fails in the XTS pressure test of the permission case.|
## Known Issues
**Table 7** Known issues
| Issue No.| Description| Impact| To Be Resolved On|
| -------- | -------- | -------- | -------- |
| [I4NRS5](https://gitee.com/openharmony/kernel_linux_5.10/issues/I4NRS5) | [Kernel subsystem] A CVE vulnerability exists.| No patch has been released for the Linux kernel. The kernel will be updated after the patch is released in the community.| Depending on the patch release in the community|
| [I4MGJM](https://gitee.com/openharmony/drivers_peripheral/issues/I4MGJM) | [HDF/Camera] The case fails when the RK3568 board runs the camera HDI tests.| The photographing and preview functions are normal. The recording function can be started but cannot be stopped.| 2021/12/31 |
| [I4OECR](https://gitee.com/openharmony/ark_js_runtime/issues/I4OECR) | An Ark stack exception occurs during XTS running (low probability).| There is a low probability that the Ark stack becomes abnormal during the XTS pressure test. This issue occurs only once in 48 hours. The exception stack is reported only in the log and does not affect the functions.| 2022/01/05|
| [I4OBTW](https://gitee.com/openharmony/aafwk_standard/issues/I4OBTW) | After all XTS cases are executed and the application is installed, aa start failures occur, affecting the OpenHarmony pipeline stability test.| During the XTS pressure test, when 100 application packages are installed in batches in a short period of time, 2 of them cannot be started. User experience is not affected.| 2022/01/05|
| [I4OLHF](https://gitee.com/openharmony/ark_js_runtime/issues/I4OLHF?from=project-issue) | [Ark subsystem] The test process is abnormal due to the com.amsst.amsMissionSnapshotTest process.| This issue occurs occasionally during high-pressure tests.| 2022/01/05|
| [I4OLUK](https://gitee.com/openharmony/ark_js_runtime/issues/I4OLUK) | [Ark subsystem] The process stack is abnormal due to the com.ohos.systemui process.| This issue occurs occasionally during high-pressure tests.| 2022/01/05|
# OpenHarmony Release Notes # OpenHarmony Release Notes
## OpenHarmony 3.x Releases ## OpenHarmony 3.x Releases
[OpenHarmony v3.0 LTS (2021-09-30)](OpenHarmony-v3.0-LTS.md) - [OpenHarmony v3.1 Beta (2021-12-31)](OpenHarmony-v3.1-beta.md)
- [OpenHarmony v3.0 LTS (2021-09-30)](OpenHarmony-v3.0-LTS.md)
## OpenHarmony 2.x Releases ## OpenHarmony 2.x Releases
- [OpenHarmony v2.2 beta2 (2021-08-04)](OpenHarmony-v2.2-beta2.md) - [OpenHarmony v2.2 beta2 (2021-08-04)](OpenHarmony-v2.2-beta2.md)
- [OpenHarmony 2.0 Canary (2021-06-02)](openharmony-2-0-canary.md) - [OpenHarmony 2.0 Canary (2021-06-02)](OpenHarmony-2-0-canary.md)
## OpenHarmony 1.x Releases ## OpenHarmony 1.x Releases
- [OpenHarmony v1.1.3 LTS (2021-09-30)](OpenHarmony-v1-1-3-LTS.md) - [OpenHarmony v1.1.3 LTS (2021-09-30)](OpenHarmony-v1-1-3-LTS.md)
- [OpenHarmony v1.1.2 LTS (2021-08-04)](OpenHarmony-v1.1.2-LTS.md) - [OpenHarmony v1.1.2 LTS (2021-08-04)](OpenHarmony-v1.1.2-LTS.md)
- [OpenHarmony 1.1.1 LTS (2021-06-22)](OpenHarmony-1-1-1-LTS.md) - [OpenHarmony 1.1.1 LTS (2021-06-22)](OpenHarmony-1-1-1-LTS.md)
- [OpenHarmony 1.1.0 LTS (2021-04-01)](openharmony-1-1-0-lts.md) - [OpenHarmony 1.1.0 LTS (2021-04-01)](OpenHarmony-1-1-0-LTS.md)
- [OpenHarmony 1.0 (2020-09-10)](OpenHarmony-1-0.md) - [OpenHarmony 1.0 (2020-09-10)](OpenHarmony-1-0.md)
# Changelog
##### Key API/Component Changes
## IPC Subsystem
#### cl.rpc.1 sendRequest Return Value Type Change
##### Change Impact
The **sendRequest** method in the JS modules **RemoteProxy** and **RemoteObject** is changed to an asynchronous interface. The new version uses a **Promise** object to return a **SendRequestResult** instance. Existing applications need to be adapted.
##### Key API/Component Changes
```
Module: ohos.rpc.IRemoteObject, ohos.rpc.RemoteProxy and ohos.rpc.RemoteObject
Old method: sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean
New method:
sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult>
```
**Adaptation Guidelines**
```
import rpc from "@ohos.rpc"
let option = new rpc.MessageOption()
let data = rpc.MessageParcel.create()
let reply = rpc.MessageParcel.create()
proxy.sendRequest(1, data, reply, option)
.then(function(result) {
console.info("send request done")
if (result.errCode === 0) {
// read result from result.reply
}
})
.catch(function(e) {
console.error("send request failed: " + e)
})
.finally(() => {
data.reclaim()
reply.reclaim()
})
```
# JS API Differences
This document describes the changes of APIs in OpenHarmony 3.1 Beta when compared with OpenHarmony 3.0 LTS.
## Standard System API Changes
| Module| API| Change Type| Change Description|
| -------- | -------- | -------- | -------- |
| System Application - settings| getUri(name: string): string | Added| Added the API for obtaining the URI of a string.|
| System Application - settings| getValue(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string | Added| Added the API for obtaining the value of a string in the database.|
| System Application - settings| setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean | Added| Added the API for saving a string name and its value in the database.|
| Misc Services - systemTime| getCurrentTime(callback: AsyncCallback<number>): void | Added| Added the API for obtaining the number of milliseconds elapsed since the Unix epoch.|
| Misc Services - systemTime| getCurrentTime(): Promise<number> | Added| Added the API for obtaining the number of milliseconds elapsed since the Unix epoch.|
| Misc Services - systemTime| getCurrentTimeNs(callback: AsyncCallback<number>): void | Added| Added the API for obtaining the number of nanoseconds elapsed since the Unix epoch.|
| Misc Services - systemTime| getCurrentTimeNs(): Promise<number> | Added| Added the API for obtaining the number of nanoseconds elapsed since the Unix epoch.|
| Misc Services - systemTime| getRealActiveTime(callback: AsyncCallback<number>): void | Added| Added the API for obtaining the number of milliseconds elapsed since the system boot, excluding the deep sleep time.|
| Misc Services - systemTime| getRealActiveTime(): Promise<number> | Added| Added the API for obtaining the number of milliseconds elapsed since the system boot, excluding the deep sleep time.|
| Misc Services - systemTime| getRealActiveTimeNs(callback: AsyncCallback<number>): void | Added| Added the API for obtaining the number of nanoseconds elapsed since the system boot, excluding the deep sleep time.|
| Misc Services - systemTime| getRealActiveTimeNs(): Promise<number> | Added| Added the API for obtaining the number of nanoseconds elapsed since the system boot, excluding the deep sleep time.|
| Misc Services - systemTime| getRealTime(callback: AsyncCallback<number>): void | Added| Added the API for obtaining the number of milliseconds elapsed since the system boot, including the deep sleep time.|
| Misc Services - systemTime| getRealTime(): Promise<number> | Added| Added the API for obtaining the number of milliseconds elapsed since the system boot, including the deep sleep time.|
| Misc Services - systemTime| getRealTimeNs(callback: AsyncCallback<number>): void | Added| Added the API for obtaining the number of nanoseconds elapsed since the system boot, including the deep sleep time.|
| Misc Services - systemTime| getRealTimeNs(): Promise<number> | Added| Added the API for obtaining the number of nanoseconds elapsed since the system boot, including the deep sleep time.|
| Misc Services - systemTime| getDate(callback: AsyncCallback<Date>): void | Added| Added the API for obtaining the system date.|
| Misc Services - systemTime| getDate(): Promise<Date> | Added| Added the API for obtaining the system date.|
| Misc Services - systemTime| getTimeZone(callback: AsyncCallback<string>): void | Added| Added the API for obtaining the system time zone.|
| Misc Services - systemTime| getTimeZone(): Promise<string> | Added| Added the API for obtaining the system time zone.|
| ArkUI Framework - Universal Events| onAreaChange (Component Area Change Event)| Added| Added the API for subscribing to component area (including the size and position) changes.|
| ArkUI Framework - Universal Attributes| responseRegion| Added| Added the attribute for touch hotspot settings.|
| ArkUI Framework - Universal Attributes| touchable| Added| Added the attribute that specifies whether a component is touchable.|
| ArkUI Framework - Universal Attributes| stateStyle| Added| Added the attribute that specifies the styles of the pressed and disabled states of a component.|
| ArkUI Framework - Basic Gestures| SwipeGesture | Added| Added the SwipeGesture module.|
| ArkUI Framework - Basic Components| Marquee | Added| Added the **\<Marquee>** component.|
| ArkUI Framework - Basic Components| PluginComponent | Added| Added the **\<PluginComponent>** component.|
| ArkUI Framework - Basic Components| TextArea | Added| Added the **\<TextArea>** component.|
| ArkUI Framework - Basic Components| TextInput | Added| Added the **\<TextInput>** component.|
| ArkUI Framework - Basic Components| Toggle | Added| Added the **\<Toggle>** component.|
| ArkUI Framework - Container Components| ScrollBar | Added| Added the **\<ScrollBar>** component.|
| ArkUI Framework - Container Components| Navigation | Added| Added the **\<Navigation>** component.|
| ArkUI Framework - Container Components| Stepper | Added| Added the **\<Stepper>** component.|
| ArkUI Framework - Container Components| StepperItem | Added| Added the **\<StepperItem>** component.|
| ArkUI Framework - Canvas Components| Canvas | Added| Added the **\<Canvas>** component.|
| ArkUI Framework - Canvas Components| Lottie | Added| Added the support for the Lottie library.|
| ArkUI Framework - Global UI Methods| ActionSheet | Added| Added the support for the list selection dialog box.|
| USB Service - USB| getDevices(): Array<Readonly<USBDevice>> | Added| Added the API for obtaining USB devices.|
| USB Service - USB| connectDevice(device: USBDevice): Readonly<USBDevicePipe> | Added| Added the API for opening a USB device based on the device information returned by **getDevices()**.|
| USB Service - USB| hasRight(deviceName: string): boolean | Added| Added the API for checking whether the caller has the permission to access the USB device.|
| USB Service - USB| requestRight(deviceName: string): Promise<boolean> | Added| Added the API for requesting the temporary permission for the caller to access the USB device.|
| USB Service - USB| claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number | Added| Added the API for claiming a USB interface.|
| USB Service - USB| releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number | Added| Added the API for releasing a USB interface.|
| USB Service - USB| setConfiguration(pipe: USBDevicePipe, config: USBConfig): number | Added| Added the API for setting USB device configurations.|
| USB Service - USB| setInterface(pipe: USBDevicePipe, iface: USBInterface): number | Added| Added the API for setting USB device interfaces.|
| USB Service - USB| getRawDescriptor(pipe: USBDevicePipe): Uint8Array | Added| Added the API for obtaining the raw USB descriptor.|
| USB Service - USB| getFileDescriptor(pipe: USBDevicePipe): number | Added| Added the API for obtaining the file descriptor.|
| USB Service - USB| controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout?: number): Promise<number> | Added| Added the API for control transfer.|
| USB Service - USB| bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout?: number): Promise<number> | Added| Added the API for bulk transfer.|
| USB Service - USB| closePipe(pipe: USBDevicePipe): number | Added| Added the API for closing the USB device pipe.|
| Application Framework - bundle| function cleanBundleCacheFiles(bundleName: string, callback: AsyncCallback<void>): void;<br/>function cleanBundleCacheFiles(bundleName: string): Promise<void>; | Added| Added the APIs for clearing the cache of an application.|
| Application Framework - bundle| function setApplicationEnabled(bundleName: string, isEnable: boolean, callback: AsyncCallback<void>): void;<br/>function setApplicationEnabled(bundleName: string, isEnable: boolean): Promise<void>; | Added| Added the API for setting whether to enable an application.|
| Application Framework - bundle| function setAbilityEnabled(info: AbilityInfo, isEnable: boolean, callback: AsyncCallback<void>): void;<br/>function setAbilityEnabled(info: AbilityInfo, isEnable: boolean): Promise<void>; | Added| Added the APIs for setting whether to enable an ability.|
| Application Framework - bundle.innerBundleManager| function getLauncherAbilityInfos(bundleName: string, userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : void;<br/>function getLauncherAbilityInfos(bundleName: string, userId: number) : Promise<Array<LauncherAbilityInfo>>; | Added| Added the APIs for obtaining the launcher ability information by **bundleName**.|
| Application Framework - bundle.innerBundleManager| function on(type:"BundleStatusChange", bundleStatusCallback : BundleStatusCallback, callback: AsyncCallback<string>) : void;<br/>function on(type:"BundleStatusChange", bundleStatusCallback : BundleStatusCallback): Proimise<string>; | Added| Added the APIs for subscribing to bundle status changes.|
| Application Framework - bundle.innerBundleManager| function off(type:"BundleStatusChange", callback: AsyncCallback<string>) : void;<br/>function off(type:"BundleStatusChange"): Proimise<string>; | Added| Added the APIs for unsubscribing from bundle status changes.|
| Application Framework - bundle.innerBundleManager| function getAllLauncherAbilityInfos(userId: number, callback: AsyncCallback<Array<LauncherAbilityInfo>>) : void;<br/>function getAllLauncherAbilityInfos(userId: number) : Promise<Array<LauncherAbilityInfo>>; | Added| Added the APIs for obtaining the application abilities on all launchers by **userId**.|
| Application Framework - bundle.innerBundleManager| function getShortcutInfos(bundleName :string, callback: AsyncCallback<Array<ShortcutInfo>>) : void;<br/>function getShortcutInfos(bundleName : string) : Promise<Array<ShortcutInfo>>; | Added| Added the APIs for obtaining the application shortcut information by **bundleName**.|
| DSoftBus - rpc.MessageParcel| writeNoException(): void | Added| - |
| DSoftBus - rpc.MessageParcel| readException(): void | Added| - |
| DSoftBus - rpc.MessageParcel| writeRemoteObjectArray(objectArray: IRemoteObject[]): boolean | Added| - |
| DSoftBus - rpc.MessageParcel| readSequenceableArray(sequenceableArray Sequenceable[]): void | Added| - |
| DSoftBus - rpc.MessageParcel| readRemoteObjectArray(objects: IRemoteObject[]): void | Added| - |
| DSoftBus - rpc.MessageParcel| readRemoteObjectArray(): IRemoteObject[] | Added| - |
| DSoftBus - rpc.MessageParcel| static closeFileDescriptor(fd: number): void | Added| - |
| DSoftBus - rpc.MessageParcel| static dupFileDescriptor(fd: number) :number | Added| - |
| DSoftBus - rpc.MessageParcel| containFileDescriptors(): boolean | Added| - |
| DSoftBus - rpc.MessageParcel| writeFileDescriptor(fd: number): boolean | Added| - |
| DSoftBus - rpc.MessageParcel| readFileDescriptor(): number | Added| - |
| DSoftBus - rpc.MessageParcel| writeAshmem(ashmem: Ashmem): boolean | Added| - |
| DSoftBus - rpc.MessageParcel| readAshmem(): Ashmem | Added| - |
| DSoftBus - rpc.MessageParcel| getRawDataCapacity(): number | Added| - |
| DSoftBus - rpc.MessageParcel| writeRawData(rawData: number[], size: number): boolean | Added| - |
| DSoftBus - rpc.MessageParcel| readRawData(size: number): number[] | Added| - |
| DSoftBus - rpc| interface SendRequestResult {<br/> errCode: number;<br/><br/> code: number;<br/><br/> data: MessageParcel;<br/><br/> reply: MessageParcel;<br/> } | Added| - |
| DSoftBus - rpc.Ashmem| PROT_EXEC = 4 | Added| - |
| DSoftBus - rpc.Ashmem| PROT_NONE = 0 | Added| - |
| DSoftBus - rpc.Ashmem| PROT_READ = 1 | Added| - |
| DSoftBus - rpc.Ashmem| PROT_WRITE = 2 | Added| - |
| DSoftBus - rpc.Ashmem| static createAshmem(name: string, size: number): Ashmem | Added| - |
| DSoftBus - rpc.Ashmem| static createAshmemFromExisting(ashmem: Ashmem): Ashmem | Added| - |
| DSoftBus - rpc.Ashmem| closeAshmem(): void | Added| - |
| DSoftBus - rpc.Ashmem| unmapAshmem(): void | Added| - |
| DSoftBus - rpc.Ashmem| getAshmemSize(): number | Added| - |
| DSoftBus - rpc.Ashmem| mapAshmem(mapType: number): boolean | Added| - |
| DSoftBus - rpc.Ashmem| mapReadAndWriteAshmem(): boolean | Added| - |
| DSoftBus - rpc.Ashmem| mapReadOnlyAshmem(): boolean | Added| - |
| DSoftBus - rpc.Ashmem| setProtection(protectionType: number): boolean | Added| - |
| DSoftBus - rpc.Ashmem| writeToAshmem(buf: number[], size: number, offset: number): boolean | Added| - |
| DSoftBus - rpc.Ashmem| readFromAshmem(size: number, offset: number): number[] | Added| - |
| DSoftBus - rpc.IRemoteObject| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean | Deprecated| Replaced by an asynchronous interface, which uses a promise or callback.|
| DSoftBus - rpc.IRemoteObject| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult> | Added| - |
| DSoftBus - rpc.IRemoteObject| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void | Added| - |
| DSoftBus - rpc.RemoteProxy| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean | Deprecated| Replaced by an asynchronous interface, which uses a promise or callback.|
| DSoftBus - rpc.RemoteProxy| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult> | Added| - |
| DSoftBus - rpc.RemoteProxy| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void | Added| - |
| DSoftBus - rpc.RemoteObject| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean | Deprecated| Replaced by an asynchronous interface, which uses a promise or callback.|
| DSoftBus - rpc.RemoteObject| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult> | Added| - |
| DSoftBus - rpc.RemoteObject| sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption, callback: AsyncCallback<SendRequestResult>): void | Added| - |
| DSoftBus - rpc.IRemoteObject| PING_TRANSACTION | Deleted| Deleted since it is not implemented in API Version 7. The deletion has no impact on existing applications.|
| DSoftBus - rpc.IRemoteObject| DUMP_TRANSACTION | Deleted| Deleted since it is not implemented in API Version 7. The deletion has no impact on existing applications.|
| DSoftBus - rpc.IRemoteObject| INTERFACE_TRANSACTION | Deleted| Deleted since it is not implemented in API Version 7. The deletion has no impact on existing applications.|
| DSoftBus - rpc.IRemoteObject| MIN_TRANSACTION_ID | Deleted| Deleted since it is not implemented in API Version 7. The deletion has no impact on existing applications.|
| DSoftBus - rpc.IRemoteObject| MAX_TRANSACTION_ID | Deleted| Deleted since it is not implemented in API Version 7. The deletion has no impact on existing applications.|
| DSoftBus - rpc.Sequenceable| hasFileDescriptor(): boolean | Deleted| Deleted since this API will not be invoked by the RPC framework. The deletion has no impact on existing applications.|
| DSoftBus - rpc.MessageOption| constructor(syncFlags?: number, waitTime = TF_WAIT_TIME) | Added| - |
| DSoftBus - rpc.MessageOption| getFlags(): number | Added| - |
| DSoftBus - rpc.MessageOption| setFlags(flags: number): void | Added| - |
| DSoftBus - rpc.MessageOption| getWaitTime(): number | Added| - |
| DSoftBus - rpc.MessageOption| setWaitTime(waitTime: number): void | Added| - |
| DSoftBus - rpc.MessageOption| MAX_WAIT_TIME = 3000 | Deleted| Deleted since it is not implemented in API Version 7. The deletion has no impact on existing applications.|
| DSoftBus - rpc.RemoteObject| constructor(descriptor: string) | Added| - |
| DSoftBus - rpc.RemoteObject| queryLocalInterface(descriptor: string): IRemoteBroker | Modified| Corrected the return type to **IRemoteBroker**. This change does not affect existing applications.|
| DSoftBus - rpc.Proxy| PING_TRANSACTION | Added| - |
| DSoftBus - rpc.Proxy| DUMP_TRANSACTION | Added| - |
| DSoftBus - rpc.Proxy| INTERFACE_TRANSACTION | Added| - |
| DSoftBus - rpc.Proxy| MIN_TRANSACTION_ID = 0x1 | Added| - |
| DSoftBus - rpc.Proxy| MAX_TRANSACTION_ID = 0x00FFFFFF | Added| - |
| DSoftBus - rpc.Proxy| queryLocalInterface(interface: string): IRemoteBroker | Modified| Corrected the return type to **IRemoteBroker**. This change does not affect existing applications.|
| DSoftBus - Wi-Fi| function getLinkedInfo(): Promise<WifiLinkedInfo>;<br/>function getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void;| Added| - |
| DSoftBus - Wi-Fi| function isConnected(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function getSupportedFeatures(): number;| Added| - |
| DSoftBus - Wi-Fi| function isFeatureSupported(featureId: number): boolean;| Added| - |
| DSoftBus - Wi-Fi| function getDeviceMacAddress(): string[];| Added| - |
| DSoftBus - Wi-Fi| function getIpInfo(): IpInfo;| Added| - |
| DSoftBus - Wi-Fi| function getCountryCode(): string;| Added| - |
| DSoftBus - Wi-Fi| function reassociate(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function reconnect(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function getDeviceConfigs(): Array<WifiDeviceConfig>;| Added| - |
| DSoftBus - Wi-Fi| function updateNetwork(config: WifiDeviceConfig): number;| Added| - |
| DSoftBus - Wi-Fi| function disableNetwork(netId: number): boolean;| Added| - |
| DSoftBus - Wi-Fi| function removeAllNetwork(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function removeDevice(id: number): boolean;| Added| - |
| DSoftBus - Wi-Fi| function enableHotspot(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function disableHotspot(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function isHotspotActive(): boolean;| Added| - |
| DSoftBus - Wi-Fi| function setHotspotConfig(config: HotspotConfig): boolean;| Added| - |
| DSoftBus - Wi-Fi| function getHotspotConfig(): HotspotConfig;| Added| - |
| DSoftBus - Wi-Fi| function getStations(): Array<StationInfo>;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "wifiStateChange", callback: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "wifiStateChange", callback?: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "wifiConnectionChange", callback: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "wifiConnectionChange", callback?: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "wifiScanStateChange", callback: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "wifiScanStateChange", callback?: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "wifiRssiChange", callback: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "wifiRssiChange", callback?: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "hotspotStateChange", callback: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "hotspotStateChange", callback?: Callback<number>): void;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "hotspotStaJoin", callback: Callback<StationInfo>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "hotspotStaJoin", callback?: Callback<StationInfo>): void;| Added| - |
| DSoftBus - Wi-Fi| function on(type: "hotspotStaLeave", callback: Callback<StationInfo>): void;| Added| - |
| DSoftBus - Wi-Fi| function off(type: "hotspotStaLeave", callback?: Callback<StationInfo>): void;| Added| - |
| Globalization - resourceManager| getRawFile(path: string, callback: AsyncCallback<Uint8Array>);<br/>getRawFile(path: string): Promise<Uint8Array>;| Added| - |
| Globalization - Intl| RelativeTimeFormat.constructor(); | Added| Added this constructor.|
| Globalization - Intl| RelativeTimeFormat.constructor(locale: string \| Array<string>, options?: RelativeTimeFormatInputOptions); | Added| Added this constructor. |
| Globalization - Intl| RelativeTimeFormat.format(value: number, unit: string): string; | Added| Added the API for formatting the relative time.|
| Globalization - Intl| RelativeTimeFormat.formatToParts(value: number, unit: string): Array<object>; | Added| Added the API for formatting the relative time. The result is divided into multiple parts and stored separately.|
| Globalization - Intl| RelativeTimeFormat.formatToParts(value: number, unit: string): Array<object>; | Added| Added the API for formatting the relative time. The result is divided into multiple parts and stored separately.|
| Globalization - Intl| PluralRules.constructor(); | Added| Added this constructor.|
| Globalization - Intl| PluralRules.constructor(locale: string \| Array<string>, options?: PluralRulesOptions); | Added| Added this constructor.|
| Globalization - Intl| PluralRules.select(n: number): string; | Added| Added the API for checking the singular-plural type of a number.|
| Globalization - Intl| Collator.constructor(); | Added| Added this constructor.|
| Globalization - Intl| Collator.constructor(locale: string \| Array<string>, options?: CollatorOptions); | Added| Added this constructor.|
| Globalization - Intl| Collator.compare(first: string, second: string): number; | Added| Added the API for comparing two strings.|
| Globalization - Intl| Collator.resolvedOptions(): CollatorOptions; | Added| Added the API for obtaining the attributes of a sorting object.|
| Globalization - I18N| function unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: **number**, locale: **string**, style?: **string**): **string**; | Added| Added the API for unit conversion.|
| Globalization - I18N| function **constructor**(country: **string**, options?: PhoneNumberFormatOptions);<br/>function isValidNumber(**number**: **string**): boolean;<br/>function format(**number**: **string**): **string**; | Added| Added the APIs for formatting phone numbers.|
| Globalization - I18N| function setTime(date: Date);<br/>function setTime(time: **number**);<br/>function **set**(year: **number**, month: **number**, date:**number**, hour?: **number**, minute?: **number**, second?: **number**);<br/>function setTimeZone(timezone: **string**);<br/>function getTimeZone(): **string**;<br/>function getFirstDayOfWeek(): **number**;<br/>function setFirstDayOfWeek(value: **number**);<br/>function getMinimalDaysInFirstWeek(): **number**;<br/>function setMinimalDaysInFirstWeek(value: **number**);<br/>function **get**(field: **string**): **number**;<br/>function getDisplayName(locale: **string**): **string**;<br/>function isWeekend(date?: Date): boolean;<br/>function **export** **function** getCalendar(locale: **string**, **type**?: **string**): Calendar; | Added| Added the APIs for the calendar.|
| Globalization - I18N| **function** isRTL(locale: **string**): boolean; | Added| Added the API for checking whether the localized script for the specified language is displayed from right to left.|
| Globalization - I18N| **function** getLineInstance(locale: **string**): BreakIterator;<br/>function current(): **number**;<br/>function first(): **number**;<br/>function last(): **number**;<br/>function next(index?: **number**): **number**;<br/>function previous(): **number**;<br/>function setLineBreakText(text: **string**): **void**;<br/>function following(offset: **number**): **number**;<br/>function getLineBreakText(): **string**;<br/>function isBoundary(offset: **number**): boolean; | Added| Added the APIs for line feed.|
| Globalization - I18N| function getInstance(locale?:**string**): IndexUtil;<br/>function getIndexList(): Array<**string**>; | Added| Added the APIs for obtaining the alphabet index.|
| Globalization - I18N| function addLocale(locale: **string**);<br/>function getIndex(text: **string**): **string**;<br/>function isDigit(char: **string**): boolean;<br/>function isSpaceChar(char: **string**): boolean;<br/>function isWhitespace(char: **string**): boolean;<br/>function isRTL(char: **string**): boolean;<br/>function isIdeograph(char: **string**): boolean;<br/>function isLetter(char: **string**): boolean;<br/>function isLowerCase(char: **string**): boolean;<br/>function isUpperCase(char: **string**): boolean;<br/>function getType(char: **string**): **string**; | Added| Added the APIs for obtaining character attributes.|
| Event Notification - DoNotDisturbDate| type: notification.DoNotDisturbType | Added| Added the do-not-disturb (DND) time type.|
| Event Notification - DoNotDisturbDate| begin: Date | Added| Added the DND start time setting.|
| Event Notification - DoNotDisturbDate| end: Date | Added| Added the DND end time setting.|
| Event Notification - DoNotDisturbDate| export enum DoNotDisturbType {<br/> TYPE_NONE = 0, // Non-notification DND type<br/> TYPE_ONCE = 1, // One-shot DND at the specified time segment<br/> TYPE_DAILY = 2, // Daily DND at the specified time segment (only the hour and minute specified)<br/> TYPE_CLEARLY = 3, // DND at the specified time segment (the year, month, day, hour, and minute specified)<br/>}| Added| Added the DND time type.|
| Event Notification - notification| function setDoNotDisturbDate(date DoNotDisturbDate, callback: AsyncCallback<void>): void | Added| Added the API for setting the DND time segment.|
| Event Notification - notification| function setDoNotDisturbDate(date DoNotDisturbDate): Promise<void> | Added| Added the API for setting the DND time segment.|
| Event Notification - notification| function getDoNotDisturbDate(callback: AsyncCallback<DoNotDisturbDate>): void | Added| Added the API for obtaining the DND time segment.|
| Event Notification - notification| function getDoNotDisturbDate(): Promise<DoNotDisturbDate> | Added| Added the API for obtaining the DND time segment.|
| Event Notification - notification| function supportDoNotDisturbMode(callback: AsyncCallback<boolean>): void | Added| Added the API for checking whether DND is supported.|
| Event Notification - notification| function supportDoNotDisturbMode(): Promise<boolean> | Added| Added the API for checking whether DND is supported.|
| Event Notification - notification| function cancelGroup(groupName: string, callback: AsyncCallback<void>): void | Added| Added the API for canceling a notification group of the current application.|
| Event Notification - notification| function cancelGroup(groupName: string): Promise<void> | Added| Added the API for canceling a notification group of the current application.|
| Event Notification - notification| function removeGroupByBundle(bundle: BundleOption, groupName: string, callback: AsyncCallback<void>): void | Added| Added the API for removing a notification group of a specified application.|
| Event Notification - notification| function removeGroupByBundle(bundle: BundleOption, groupName: string): Promise<void> | Added| Added the API for removing a notification group of a specified application.|
| Event Notification - NotificationSubscriber| onDoNotDisturbDateChange?:(mode: notification.DoNotDisturbDate) => void | Added| Added the API for subscribing to DND setting changes.|
| Event Notification - NotificationRequest| smallIcon?: image.PixelMap | Added| Added the small notification icon.|
| Event Notification - NotificationRequest| largeIcon?: image.PixelMap; | Added| Added the large notification icon.|
| Event Notification - NotificationRequest| groupName?: string; | Added| Added the notification group name.|
| Event Notification - NotificationUserInput| | Added| Added the user input object.|
| Event Notification - NotificationUserInput| inputKey: string | Added| Added a key to identify the user input.|
| Event Notification - NotificationActionButton| userInput?: NotificationUserInput | Added| Added the user input object.|
| Event notification - emitter| function on(event: InnerEvent, callback: Callback<EventData>): void | Added| Added the API for subscribing to an event in persistent manner and receiving the event callback.|
| Event notification - emitter| function once(event: InnerEvent, callback: Callback<EventData>): void | Added| Added the API for subscribing to an event in one-shot manner and unsubscribing from it after the event is received via a callback.|
| Event notification - emitter| function off(eventId: number): void | Added| Added the API for unsubscribing from an event.|
| Event notification - emitter| function emit(event: InnerEvent, data?: EventData): void | Added| Added the API for emitting an event to the event queue.|
| Distributed File - statfs| function getFreeBytes(path: string, callback: AsyncCallback<number>): void | Added| Added the API for obtaining the free space (in bytes) of a device using an asynchronous callback.|
| Distributed File - statfs| function getFreeBytes(path: string): Promise<number> | Added| Added the API for obtaining the free space (in bytes) of a device using a promise.|
| Distributed File - statfs| function getTotalBytes(path: string, callback: AsyncCallback<number>): void | Added| Added the API for obtaining the total space (in bytes) of a device using an asynchronous callback.|
| Distributed File - statfs| function getTotalBytes(path: string): Promise<number> | Added| Added the API for obtaining the total space (in bytes) of a device using a promise.|
| Distributed Scheduler - featureAbility| function continueAbility(options: ContinueAbilityOptions, callback: AsyncCallback<void>): void;<br/>function continueAbility(options: ContinueAbilityOptions): Promise<void>; | Added| - |
| Multi-language Runtime - URI| constructor(uri: string); | Added| |
| Multi-language Runtime - URI| toString(): string | Added| |
| Multi-language Runtime - URI| equals(other: URI): boolean; | Added| |
| Multi-language Runtime - URI| checkIsAbsolute(): boolean; | Added| |
| Multi-language Runtime - URI| normalize(): URI; | Added| |
| Multi-language Runtime - URI| scheme: string; | Added| |
| Multi-language Runtime - URI| userinfo: string; | Added| |
| Multi-language Runtime - URI| host: string; | Added| |
| Multi-language Runtime - URI| port: string; | Added| |
| Multi-language Runtime - URI| path: string; | Added| |
| Multi-language Runtime - URI| query: string; | Added| |
| Multi-language Runtime - URI| query: string; | Added| |
| Multi-language Runtime - URI| authority: string; | Added| |
| Multi-language Runtime - URI| ssp: string; | Added| |
| Multi-language Runtime - RationalNumber| constructor(numerator: number, denominator: number); | Added| |
| Multi-language Runtime - RationalNumber| static createRationalFromString(rationalString: string): RationalNumber; | Added| |
| Multi-language Runtime - RationalNumber| compareTo(another :RationalNumber): number; | Added| |
| Multi-language Runtime - RationalNumber| equals(obj: Object): boolean; | Added| |
| Multi-language Runtime - RationalNumber| valueOf(): number; | Added| |
| Multi-language Runtime - RationalNumber| static getCommonDivisor(number1: number, number2: number): number; | Added| |
| Multi-language Runtime - RationalNumber| getDenominator(): number; | Added| |
| Multi-language Runtime - RationalNumber| getNumerator(): number; | Added| |
| Multi-language Runtime - RationalNumber| isFinite() : boolean; | Added| |
| Multi-language Runtime - RationalNumber| isNaN(): boolean; | Added| |
| Multi-language Runtime - RationalNumber| isZero(): boolean; | Added| |
| Multi-language Runtime - RationalNumber| toString(): string; | Added| |
| Multi-language Runtime - LruBuffer| constructor(capacity?:number); | Added| |
| Multi-language Runtime - LruBuffer| updateCapacity(newCapacity: number):void | Added| |
| Multi-language Runtime - LruBuffer| toString():string | Added| |
| Multi-language Runtime - LruBuffer| length:number | Added| |
| Multi-language Runtime - LruBuffer| getCapacity(): number; | Added| |
| Multi-language Runtime - LruBuffer| clear(): void; | Added| |
| Multi-language Runtime - LruBuffer| getCreateCount(): number; | Added| |
| Multi-language Runtime - LruBuffer| getMissCount(): number; | Added| |
| Multi-language Runtime - LruBuffer| getRemovalCount(): number; | Added| |
| Multi-language Runtime - LruBuffer| getMatchCount(): number; | Added| |
| Multi-language Runtime - LruBuffer| getPutCount(): number; | Added| |
| Multi-language Runtime - LruBuffer| isEmpty(): boolean; | Added| |
| Multi-language Runtime - LruBuffer| get(key: K): V \| undefined; | Added| |
| Multi-language Runtime - LruBuffer| put(key: K, value: V): V; | Added| |
| Multi-language Runtime - LruBuffer| values(): V[]; | Added| |
| Multi-language Runtime - LruBuffer| keys(): K[]; | Added| |
| Multi-language Runtime - LruBuffer| remove(key: K): V \| undefined; | Added| |
| Multi-language Runtime - LruBuffer| afterRemoval(isEvict: boolean, key: K, value: V, newValue: V): void; | Added| |
| Multi-language Runtime - LruBuffer| contains(key: K): boolean; | Added| |
| Multi-language Runtime - LruBuffer| createDefault(key: K): V; | Added| |
| Multi-language Runtime - LruBuffer| entries(): IterableIterator<[K, V]>; | Added| |
| Multi-language Runtime - LruBuffer| [Symbol.iterator](): IterableIterator<[K, V]>; | Added| |
| Multi-language Runtime - Scope| constructor(lowerObj: ScopeType, upperObj: ScopeType); | Added| |
| Multi-language Runtime - Scope| toString(): string; | Added| |
| Multi-language Runtime - Scope| intersect(range: Scope): Scope; | Added| |
| Multi-language Runtime - Scope| intersect(lowerObj: ScopeType, upperObj: ScopeType): Scope; | Added| |
| Multi-language Runtime - Scope| getUpper(): ScopeType; | Added| |
| Multi-language Runtime - Scope| getLower(): ScopeType; | Added| |
| Multi-language Runtime - Scope| expand(lowerObj: ScopeType, upperObj: ScopeType): Scope; | Added| |
| Multi-language Runtime - Scope| expand(range: Scope): Scope; | Added| |
| Multi-language Runtime - Scope| expand(value: ScopeType): Scope; | Added| |
| Multi-language Runtime - Scope| contains(value: ScopeType): boolean; | Added| |
| Multi-language Runtime - Scope| contains(range: Scope): boolean; | Added| |
| Multi-language Runtime - Scope| clamp(value: ScopeType): ScopeType; | Added| |
| Multi-language Runtime - Base64| constructor(); | Added| |
| Multi-language Runtime - Base64| encodeSync(src: Uint8Array): Uint8Array; | Added| |
| Multi-language Runtime - Base64| encodeToStringSync(src: Uint8Array): string; | Added| |
| Multi-language Runtime - Base64| decodeSync(src: Uint8Array \| string): Uint8Array; | Added| |
| Multi-language Runtime - Base64| encode(src: Uint8Array): Promise<Uint8Array>; | Added| |
| Multi-language Runtime - Base64| encodeToString(src: Uint8Array): Promise<string>; | Added| |
| Multi-language Runtime - Base64| decode(src: Uint8Array \| string): Promise<Uint8Array>; | Added| |
| Multi-language Runtime - types| constructor(); | Added| |
| Multi-language Runtime - types| isAnyArrayBuffer(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isArrayBufferView(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isArgumentsObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isArrayBuffer(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isAsyncFunction(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isBigInt64Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isBigUint64Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isBooleanObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isBoxedPrimitive(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isDataView(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isDate(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isExternal(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isFloat32Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isFloat64Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isGeneratorFunction(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isGeneratorObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isInt8Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isInt16Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isInt32Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isMap(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isMapIterator(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isModuleNamespaceObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isNativeError(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isNumberObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isPromise(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isProxy(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isRegExp(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isSet(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isSetIterator(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isSharedArrayBuffer(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isStringObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isSymbolObject(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isTypedArray(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isUint8Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isUint8ClampedArray(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isUint16Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isUint32Array(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isWeakMap(value: Object): boolean; | Added| |
| Multi-language Runtime - types| isWeakSet(value: Object): boolean; | Added| |
| Multi-language Runtime - process| const tid: number; | Added| |
| Multi-language Runtime - process| function isIsolatedProcess(): boolean; | Added| |
| Multi-language Runtime - process| function isAppUid(v: number): boolean; | Added| |
| Multi-language Runtime - process| function is64Bit(): boolean; | Added| |
| Multi-language Runtime - process| function getUidForName(v: string): number; | Added| |
| Multi-language Runtime - process| function getThreadPriority(v: number): number; | Added| |
| Multi-language Runtime - process| function getStartRealtime(): number; | Added| |
| Multi-language Runtime - process| function getAvailableCores(): number[]; | Added| |
| Multi-language Runtime - process| function getPastCpuTime(): number; | Added| |
| Multi-language Runtime - process| function getSystemConfig(name: number): number; | Added| |
| Multi-language Runtime - process| function getEnvironmentVar(name: string): string; | Added| |
| Multi-language Runtime - ConvertOptions| trim: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreDeclaration?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreInstruction?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreAttributes?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreComment?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreCdata?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreDoctype?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| ignoreText?: boolean; | Added| |
| Multi-language Runtime - ConvertOptions| declarationKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| instructionKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| attributesKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| textKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| cdataKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| doctypeKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| commentKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| parentKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| typeKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| nameKey: string; | Added| |
| Multi-language Runtime - ConvertOptions| elementsKey: string; | Added| |
| Multi-language Runtime - ConvertXML| convert(xml: string, options?: ConvertOptions) : Object; | Added| |
| Multi-language Runtime - XmlSerializer| constructor(buffer: ArrayBuffer \| DataView, encoding?: string); | Added| |
| Multi-language Runtime - XmlSerializer| setAttributes(name: string, value: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| addEmptyElement(name: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| setDeclaration(): void; | Added| |
| Multi-language Runtime - XmlSerializer| startElement(name: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| endElement(): void; | Added| |
| Multi-language Runtime - XmlSerializer| setNamespace(prefix: string, namespace: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| setCommnet(text: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| setCData(text: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| setText(text: string): void; | Added| |
| Multi-language Runtime - XmlSerializer| setDocType(text: string): void; | Added| |
| Multi-language Runtime -ParseOptions| supportDoctype?: boolean; | Added| |
| Multi-language Runtime -ParseOptions| ignoreNameSpace?: boolean; | Added| |
| Multi-language Runtime -ParseOptions| tagValueCallbackFunction?: (name: string, value: string) => boolean; | Added| |
| Multi-language Runtime -ParseOptions| attributeValueCallbackFunction?: (name: string, value: string) => boolean; | Added| |
| Multi-language Runtime -ParseOptions| tokenValueCallbackFunction?: (eventType: EventType, value: ParseInfo) => boolean; | Added| |
| Account - account.appAccount| createAppAccountManager | Added| Added the API for obtaining an **AppAccountManager** instance.|
| Account - account.appAccount| addAccount(name: string, callback: AsyncCallback<void>): void;<br/>addAccount(name: string, extraInfo: string, callback: AsyncCallback<void>): void;<br/>addAccount(name: string, extraInfo?: string): Promise<void>; | Added| Added the APIs for adding an application account.|
| Account - account.appAccount| deleteAccount(name: string, callback: AsyncCallback<void>): void;<br/>deleteAccount(name: string): Promise<void>; | Added| Added the APIs for deleting an application account.|
| Account - account.appAccount| disableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;<br/>disableAppAccess(name: string, bundleName: string): Promise<void>; | Added| Added the APIs for disabling an application account from accessing a third-party application with the given bundle name.|
| Account - account.appAccount| enableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;<br/>enableAppAccess(name: string, bundleName: string): Promise<void>; | Added| Added the APIs for enabling an application account to access a third-party application with the given bundle name.|
| Account - account.appAccount| checkAppAccountSyncEnable(name: string, callback: AsyncCallback<boolean>): void;<br/>checkAppAccountSyncEnable(name: string): Promise<boolean>; | Added| Added the APIs for checking whether an application account allows application data synchronization.|
| Account - account.appAccount| setAccountCredential(name: string, credentialType: string, credential: string,<br/> callback: AsyncCallback<void>): void;<br/>setAccountCredential(name: string, credentialType: string, credential: string): Promise<void>; | Added| Added the APIs for setting a credential for an application account.|
| Account - account.appAccount| setAccountExtraInfo(name: string, extraInfo: string, callback: AsyncCallback<void>): void;<br/>setAccountExtraInfo(name: string, extraInfo: string): Promise<void>; | Added| Added the APIs for setting additional information for an application account.|
| Account - account.appAccount| setAppAccountSyncEnable(name: string, isEnable: boolean, callback: AsyncCallback<void>): void;<br/>setAppAccountSyncEnable(name: string, isEnable: boolean): Promise<void>; | Added| Added the APIs for setting whether to enable application data synchronization for an application account.|
| Account - account.appAccount| setAssociatedData(name: string, key: string, value: string, callback: AsyncCallback<void>): void;<br/>setAssociatedData(name: string, key: string, value: string): Promise<void>; | Added| Added the APIs for setting data to be associated with an application account.|
| Account - account.appAccount| getAllAccessibleAccounts(callback: AsyncCallback<Array<AppAccountInfo>>): void;<br/>getAllAccessibleAccounts(): Promise<Array<AppAccountInfo>>; | Added| Added the APIs for obtaining the account information of this application and the information about the third-party application account that has been authorized to the current application.|
| Account - account.appAccount| getAllAccounts(owner: string, callback: AsyncCallback<Array<AppAccountInfo>>): void;<br/>getAllAccounts(owner: string): Promise<Array<AppAccountInfo>>; | Added| Added the APIs for obtaining all account information of this application.|
| Account - account.appAccount| getAccountCredential(name: string, credentialType: string, callback: AsyncCallback<string>): void;<br/>getAccountCredential(name: string, credentialType: string): Promise<string>; | Added| Added the APIs for obtaining the credential of an application account.|
| Account - account.appAccount| getAccountExtraInfo(name: string, callback: AsyncCallback<string>): void;<br/>getAccountExtraInfo(name: string): Promise<string>; | Added| Added the APIs for obtaining additional information of an application account.|
| Account - account.appAccount| getAssociatedData(name: string, key: string, callback: AsyncCallback<string>): void;<br/>getAssociatedData(name: string, key: string): Promise<string>; | Added| Added the APIs for obtaining data associated with an application account.|
| Account - account.appAccount| on(type: 'change', owners: Array<string>, callback: Callback<Array<AppAccountInfo>>): void; | Added| Added the API for subscribing to application account changes.|
| Account - account.appAccount| off(type: 'change', callback?: Callback<void>): void; | Added| Added the API for unsubscribing from application account changes.|
| Account - account.appAccount| interface AppAccountInfo | Added| Added the **AppAccountInfo** interface.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: AsyncCallback<AccelerometerResponse>,options?: Options): void | Added| Added the API for subscribing to acceleration sensor data changes.|
| Pan-sensor - sensor| on(type:SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:AsyncCallback<LinearAccelerometerResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the linear acceleration sensor.|
| Pan-sensor - sensor| on(type:SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED,callback:AsyncCallback<AccelerometerUncalibratedResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the uncalibrated acceleration sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_GRAVITY, callback: AsyncCallback<GravityResponse>,options?: Options): void | Added| Added the API for subscribing to data changes of the gravity sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE, callback: AsyncCallback<GyroscopeResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the gyroscope sensor.|
| Pan-sensor - sensor| on(type:SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED,callback:AsyncCallback<GyroscopeUncalibratedResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the uncalibrated gyroscope sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, callback: AsyncCallback<SignificantMotionResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the significant motion sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback: AsyncCallback<PedometerDetectResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the pedometer detection sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_PEDOMETER, callback: AsyncCallback<PedometerResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the pedometer sensor.|
| Pan-sensor - sensor| on(type:SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE,callback:AsyncCallback<AmbientTemperatureResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the ambient temperature sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback: AsyncCallback<MagneticFieldResponse>,options?: Options): void | Added| Added the API for subscribing to data changes of the magnetic field sensor.|
| Pan-sensor - sensor| on(type:SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED,callback:AsyncCallback<MagneticFieldUncalibratedResponse>, options: Options): void | Added| Added the API for subscribing to data changes of the uncalibrated magnetic field sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_PROXIMITY, callback: AsyncCallback<ProximityResponse>,options?: Options): void | Added| Added the API for subscribing to proximity sensor data changes.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_HUMIDITY, callback: AsyncCallback<HumidityResponse>,options?: Options): void | Added| Added the API for subscribing to humidity sensor data changes.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_BAROMETER, callback: AsyncCallback<BarometerResponse>,options?: Options): void | Added| Added the API for subscribing to barometer sensor data changes.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_HALL, callback: AsyncCallback<HallResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the Hall effect sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, callback: AsyncCallback<LightResponse>, options?: Options): void | Added| Added the API for subscribing to data changes of the ambient light sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_ORIENTATION, callback: AsyncCallback<OrientationResponse>, options?: Options): void | Added| Added the API for subscribing to orientation sensor data changes.|
| Pan-sensor - sensor| on(type:SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR,callback:AsyncCallback<RotationVectorResponse>,options?: Options): void | Added| Added the API for subscribing to data changes of the rotation vector sensor.|
| Pan-sensor - sensor| on(type: SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, callback: AsyncCallback<WearDetectionResponse>,options?: Options): void | Added| Added the API for subscribing to wear detection data changes.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_ACCELEROMETER, callback: AsyncCallback<AccelerometerResponse>): void | Added| Added the API for subscribing to only one data change of the acceleration sensor.|
| Pan-sensor - sensor| once(type:SensorType.SENSOR_TYPE_ID_LINEAR_ACCELERATION,callback:AsyncCallback<LinearAccelerometerResponse>): void | Added| Added the API for subscribing to only one data change of the linear acceleration sensor.|
| Pan-sensor - sensor| once(type:SensorType.SENSOR_TYPE_ID_ACCELEROMETER_UNCALIBRATED,callback:AsyncCallback<AccelerometerUncalibratedResponse>): void | Added| Added the API for subscribing to only one data change of the uncalibrated acceleration sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_GRAVITY, callback: AsyncCallback<GravityResponse>): void | Added| Added the API for subscribing to only one data change of the gravity sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_GYROSCOPE, callback: AsyncCallback<GyroscopeResponse>): void | Added| Added the API for subscribing to only one data change of the gyroscope sensor.|
| Pan-sensor - sensor| once(type:SensorType.SENSOR_TYPE_ID_GYROSCOPE_UNCALIBRATED,callback:AsyncCallback<GyroscopeUncalibratedResponse>, options?: Options): void | Added| Added the API for subscribing to only one data change of the uncalibrated gyroscope sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_SIGNIFICANT_MOTION, callback: AsyncCallback<SignificantMotionResponse>): void | Added| Added the API for subscribing to only one data change of the significant motion sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_PEDOMETER_DETECTION, callback: AsyncCallback<PedometerDetectResponse>): void | Added| Added the API for subscribing to only one data change of the pedometer detection sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_PEDOMETER, callback: AsyncCallback<PedometerResponse>): void | Added| Added the API for subscribing to only one data change of the pedometer sensor.|
| Pan-sensor - sensor| once(type:SensorType.SENSOR_TYPE_ID_AMBIENT_TEMPERATURE,callback:AsyncCallback<AmbientTemperatureResponse>): void | Added| Added the API for subscribing to only one data change of the ambient temperature sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD, callback: AsyncCallback<MagneticFieldResponse>): void | Added| Added the API for subscribing to only one data change of the magnetic field sensor.|
| Pan-sensor - sensor| once(type:SensorType.SENSOR_TYPE_ID_MAGNETIC_FIELD_UNCALIBRATED,callback:AsyncCallback<MagneticFieldUncalibratedResponse>): void | Added| Added the API for subscribing to only one data change of the uncalibrated magnetic field sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_PROXIMITY, callback: AsyncCallback<ProximityResponse>): void | Added| Added the API for subscribing to only one data change of the proximity sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_HUMIDITY, callback: AsyncCallback<HumidityResponse>): void | Added| Added the API for subscribing to only one data change of the humidity sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_BAROMETER, callback: AsyncCallback<BarometerResponse>): void | Added| Added the API for subscribing to only one data change of the barometer sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_HALL, callback: AsyncCallback<HallResponse>): void | Added| Added the API for subscribing to only one data change of the Hall effect sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_AMBIENT_LIGHT, callback: AsyncCallback<LightResponse>): void | Added| Added the API for subscribing to only one data change of the ambient light sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_ORIENTATION, callback: AsyncCallback<OrientationResponse>): void | Added| Added the API for subscribing to only one data change of the orientation sensor.|
| Pan-sensor - sensor| once(type:SensorType.SENSOR_TYPE_ID_ROTATION_VECTOR,callback:AsyncCallback<RotationVectorResponse>): void | Added| Added the API for subscribing to only one data change of the rotation vector sensor.|
| Pan-sensor - sensor| once(type: SensorType.SENSOR_TYPE_ID_WEAR_DETECTION, callback: AsyncCallback<WearDetectionResponse>): void | Added| Added the API for subscribing to only one data change of the wear detection sensor.|
| Pan-sensor - sensor| off(type: SensorType, callback?: AsyncCallback<void>): void | Added| Added the API for unsubscribing from sensor data changes.|
| Pan-sensor - sensor| getGeomagneticField(locationOptions: LocationOptions, timeMillis: number, callback: AsyncCallback<GeomagneticResponse>): void </br> getGeomagneticField(locationOptions: LocationOptions, timeMillis: number): Promise<GeomagneticResponse> | Added| Added the APIs for obtaining the geomagnetic field of a geographic location.|
| Pan-sensor - vibrator| vibrate(duration: number): Promise<void> </br> vibrate(duration: number, callback?: AsyncCallback<void>): void | Added| Added the APIs for triggering vibration with a specific duration.|
| Pan-sensor - vibrator| vibrate(effectId: EffectId): Promise<void> </br> vibrate(effectId: EffectId, callback?: AsyncCallback<void>): void | Added| Added the APIs for triggering vibration with a specific effect.|
| Pan-sensor - vibrator| stop(stopMode: VibratorStopMode): Promise<void> </br> stop(stopMode: VibratorStopMode, callback?: AsyncCallback<void>): void | Added| Added the APIs for stopping vibration.|
# Native API Differences
This document describes the changes of APIs in OpenHarmony 3.1 Beta when compared with OpenHarmony 3.0 LTS.
## Standard System API Changes
| Module| API| Change Type| Change Description|
| ------------------ | ------------------------------------------------------------ | -------- | ------------------------------------------------- |
| bundle | napi_value ClearBundleCache(napi_env env, napi_callback_info info) | Added| Added the API for clearing the cache of an application.|
| bundle | napi_value SetApplicationEnabled(napi_env env, napi_callback_info info) | Added| Added the API for setting whether to enable an application.|
| bundle | napi_value SetAbilityEnabled(napi_env env, napi_callback_info info) | Added| Added the API for setting whether to enable an ability.|
| innerbundlemanager | napi_value JSGetLauncherAbilityInfos(napi_env env, napi_callback_info info) | Added| Added the API for obtaining the launcher ability information by **bundleName**.|
| innerbundlemanager | napi_value JSLauncherServiceOn(napi_env env, napi_callback_info info) | Added| Added the API for subscribing to bundle status changes.|
| innerbundlemanager | napi_value JSLauncherServiceOff(napi_env env, napi_callback_info info) | Added| Added the API for unsubscribing from bundle status changes.|
| innerbundlemanager | napi_value JSGetAllLauncherAbilityInfos(napi_env env, napi_callback_info info) | Added| Added the API for obtaining the application abilities on all launchers by **userId**.|
| innerbundlemanager | napi_value JSGetShortcutInfos(napi_env env, napi_callback_info info) | Added| Added the API for obtaining the application shortcut information by **bundleName**.|
# xxx子系统/ # xxx子系统/
- [简介](#简介) - [简介](#简介)
- [目录](#目录) - [目录](#目录)
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
- [Changelog](#changelog) - [Changelog](#changelog)
- [相关仓](#相关仓) - [相关仓](#相关仓)
【标题说明】根据当前Readme的类型,使用 **子系统**或者 **件** 【标题说明】根据当前Readme的类型,使用 **子系统**或者 **件**
![子系统readme](figures/figure01.png) ![子系统readme](figures/figure01.png)
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
**内容介绍:**从以下几个方面介绍该子系统:出现背景(在整个OpenHarmony架构中的作用)、实现的功能、使用场景、支持的设备等。 **内容介绍:**从以下几个方面介绍该子系统:出现背景(在整个OpenHarmony架构中的作用)、实现的功能、使用场景、支持的设备等。
**架构图:**使用架构图说明该子系统【件】架构,对架构中的主要组成部分进行必要的解释说明 **架构图:**使用架构图说明该子系统【件】架构,对架构中的主要组成部分进行必要的解释说明
**如果本件仓库只是子系统一部分,需要理解子系统相关概念,建议给出:** **如果本件仓库只是子系统一部分,需要理解子系统相关概念,建议给出:**
**更多XXX子系统相关概念,请参考:xxx。(给出到子系统readme的链接)** **更多XXX子系统相关概念,请参考:xxx。(给出到子系统readme的链接)**
...@@ -54,13 +54,12 @@ ...@@ -54,13 +54,12 @@
| A.3.2 | 表格有表头,至少为2行2列,避免出现单行或单列表。 | | A.3.2 | 表格有表头,至少为2行2列,避免出现单行或单列表。 |
| A.3.3 | 表格无内容用“_”,不出现空白的单元格。 | | A.3.3 | 表格无内容用“_”,不出现空白的单元格。 |
| **A.4** | **图形** | | **A.4** | **图形** |
| A.4.2 | 避免涉及宗教信仰类截图。 | | A.4.1 | 避免涉及宗教信仰类截图。 |
| A.4.3 | 图文并茂,行文应力求简明,如有可能,配以适当的图,表。 | | A.4.2 | 图形有图注(不可直接粘贴图形),图注风格一致,采用名词或名词词组形式。 |
| A.4.4 | 图形有图注(不可直接粘贴图形),图注风格一致,采用名词或名词词组形式。 | | A.4.3 | 图形应清晰可辩识,信息表达完整,易于阅读。如流程图不可缺少“开始”和“结束”。 |
| A.4.5 | 图形应清晰可辩识,信息表达完整,易于阅读。如流程图不可缺少“开始”和“结束”。 | | A.4.4 | 图形逻辑清晰,图文配合使用,切忌图文分离。 |
| A.4.6 | 图形逻辑清晰,图文配合使用,切忌图文分离。 | | A.4.5 | 图片的高度建议在640px左右,宽度不超过820px,一般为.png格式,图片的大小建议不超过150k。 |
| A.4.7 | 图片的高度建议在640px左右,宽度不超过820px,一般为.png格式,图片的大小建议不超过150k。 | | A.4.6 | 图形建议尽量不要用文字,中文图用中文,英文图用英文。 |
| A.4.8 | 图形建议尽量不要用文字,中文图用中文,英文图用英文。 |
架构图参考如下,注意需要绘图的 **颜色,格式有规范要求**,请参照: 架构图参考如下,注意需要绘图的 **颜色,格式有规范要求**,请参照:
...@@ -104,7 +103,7 @@ ...@@ -104,7 +103,7 @@
## 编译构建/使用方法 ## 编译构建/使用方法
【写作要求】 可选,子系统Readme不需要提供,对于件仓的Readme,根据实际情况,提供编译构建的说明。 【写作要求】 可选,子系统Readme不需要提供,对于件仓的Readme,根据实际情况,提供编译构建的说明。
## 说明 ## 说明
...@@ -153,10 +152,10 @@ ...@@ -153,10 +152,10 @@
【写作要求】 **必选**。列出当前仓所在子系统的所有相关仓的链接,并加粗标识当前的仓 【写作要求】 **必选**。列出当前仓所在子系统的所有相关仓的链接,并加粗标识当前的仓
[xxx子系统](https://gitee.com/openharmony) 示例:
[组件1](https://gitee.com/openharmony) [内核子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%86%85%E6%A0%B8%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
**[组件2](https://gitee.com/openharmony)** [drivers\_liteos](https://gitee.com/openharmony/drivers_liteos/blob/master/README_zh.md)
[组件3](https://gitee.com/openharmony) **kernel\_liteos\_a**
\ No newline at end of file \ No newline at end of file
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
**图片名称以开发板名称命名。* **图片名称以开发板名称命名。*
*参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/oem_minitinier_des_3861.md* *参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3861.md*
******** ********
## 开发板规格 ## 开发板规格
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
*【写作说明】支持的OpenHarmony关键特性列表。* *【写作说明】支持的OpenHarmony关键特性列表。*
## 引脚定义 ## 引脚定义
*【写作说明】介绍单板的管脚定义等,描述单板I/O引脚,PIN,以及如何配置PIN、如何使用PIN连接外部组件。* *【写作说明】介绍单板的管脚定义等,描述单板I/O引脚,以及如何配置PIN、如何使用PIN连接外部组件。*
## 搭建开发环境 ## 搭建开发环境
......
...@@ -105,7 +105,7 @@ repo forall -c 'git lfs pull' ...@@ -105,7 +105,7 @@ repo forall -c 'git lfs pull'
| 语言编译器运行时子系统 | -&nbsp;I4MBUK:JavaScript/TypeScript默认运行时从quickjs替换为方舟运行时。<br/>-&nbsp;I4MBUJ:方舟运行时内存回收功能增强,支持并发标记算法以及并发压缩算法,支持选择部分region进行压缩GC(Partial&nbsp;CompressionGC),优化GC&nbsp;pause&nbsp;time减少30%。 | NA | | 语言编译器运行时子系统 | -&nbsp;I4MBUK:JavaScript/TypeScript默认运行时从quickjs替换为方舟运行时。<br/>-&nbsp;I4MBUJ:方舟运行时内存回收功能增强,支持并发标记算法以及并发压缩算法,支持选择部分region进行压缩GC(Partial&nbsp;CompressionGC),优化GC&nbsp;pause&nbsp;time减少30%。 | NA |
| 全球化子系统 | -&nbsp;支持国际化特性:单复数规则、字符串排序、电话号码处理、日历&amp;本地历法、度量衡体系和格式化、区域表示和属性、时间段格式化、字母表检索、unicode字符属性、断词换行<br/>-&nbsp;支持系统资源、rawfile资源 | NA | | 全球化子系统 | -&nbsp;支持国际化特性:单复数规则、字符串排序、电话号码处理、日历&amp;本地历法、度量衡体系和格式化、区域表示和属性、时间段格式化、字母表检索、unicode字符属性、断词换行<br/>-&nbsp;支持系统资源、rawfile资源 | NA |
| 分布式软总线子系统 | -I4FZ29:软总线提供传输ExtAPI接口<br/>-I4FZ25:软总线支持网络切换组网 | -I4FZ29:软总线提供传输ExtAPI接口<br/>-I4FZ25:软总线支持网络切换组网 | | 分布式软总线子系统 | -I4FZ29:软总线提供传输ExtAPI接口<br/>-I4FZ25:软总线支持网络切换组网 | -I4FZ29:软总线提供传输ExtAPI接口<br/>-I4FZ25:软总线支持网络切换组网 |
| 启动子系统 | NA | -I3XGJH:init基础环境构建<br/>-I3XGKV:sytemparameter管理<br/>-I3XGLN:init&nbsp;脚本管理<br/>-I3XGMQ:基础权限管理<br/>-I3XGN8:bootimage构建和加载<br/>-I3XGKV:uevent&nbsp;管理<br/>-I3XGKV:sytemparameter管理<br/>-I3XGNM:烧写模式支持 | | 启动子系统 | NA | -I3XGJH:init基础环境构建<br/>-I3XGKV:system parameter管理<br/>-I3XGLN:init&nbsp;脚本管理<br/>-I3XGMQ:基础权限管理<br/>-I3XGN8:bootimage构建和加载<br/>-I3XGKV:uevent&nbsp;管理<br/>-I3XGNM:烧写模式支持 |
| 媒体子系统 | NA | -I4BX5Z:HiStreamer支持音频播放和控制<br/>-I4BX8A:HiStreamer支持常见音频格式mp3/wav的播放<br/>-I4BX9E:HiStreamer播放引擎框架需求<br/>-I4DK89:HiStreamer插件框架需求<br/>-I4DK8D:HiStreamer性能和DFX需求 | | 媒体子系统 | NA | -I4BX5Z:HiStreamer支持音频播放和控制<br/>-I4BX8A:HiStreamer支持常见音频格式mp3/wav的播放<br/>-I4BX9E:HiStreamer播放引擎框架需求<br/>-I4DK89:HiStreamer插件框架需求<br/>-I4DK8D:HiStreamer性能和DFX需求 |
| 图形子系统 | 全新设计OpenHarmony&nbsp;图形栈:<br/>新增UI框架渲染后端特性支持<br/>新增ArkUI控件接入RenderService渲染后端 | NA | | 图形子系统 | 全新设计OpenHarmony&nbsp;图形栈:<br/>新增UI框架渲染后端特性支持<br/>新增ArkUI控件接入RenderService渲染后端 | NA |
| 内核子系统 | 内核(Linux&nbsp;5.10)<br/>-I4LUG4&nbsp;CMA内存区域复用(目前仅支持Hi3516DV300,暂不支持RK平台)<br/>-I4LX4G&nbsp;支持anonymous&nbsp;vma命名(目前仅支持Hi3516DV300,暂不支持RK平台) | -I3ND6Y:【性能】OS内核&amp;驱动启动优化 | | 内核子系统 | 内核(Linux&nbsp;5.10)<br/>-I4LUG4&nbsp;CMA内存区域复用(目前仅支持Hi3516DV300,暂不支持RK平台)<br/>-I4LX4G&nbsp;支持anonymous&nbsp;vma命名(目前仅支持Hi3516DV300,暂不支持RK平台) | -I3ND6Y:【性能】OS内核&amp;驱动启动优化 |
...@@ -142,7 +142,7 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_ ...@@ -142,7 +142,7 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_
#### 新增Samples #### 新增Samples
**表1** Samples列表 **表4** Samples列表
| 名称 | 简介 | 开发语言 | | 名称 | 简介 | 开发语言 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
...@@ -165,13 +165,13 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_ ...@@ -165,13 +165,13 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_
| [JS页面弹窗](https://gitee.com/openharmony/app_samples/tree/master/UI/JsDialog) | JS中支持用户自定义弹窗,&lt;dialog/&gt;组件作为容器组件,用户可以自定义弹窗的样式和布局。本示例完成了添加和删除联系人功能,在添加和删除时使用自定义弹窗来实现。 | JS | | [JS页面弹窗](https://gitee.com/openharmony/app_samples/tree/master/UI/JsDialog) | JS中支持用户自定义弹窗,&lt;dialog/&gt;组件作为容器组件,用户可以自定义弹窗的样式和布局。本示例完成了添加和删除联系人功能,在添加和删除时使用自定义弹窗来实现。 | JS |
| [JSList商品列表](https://gitee.com/openharmony/app_samples/tree/master/UI/JsList) | 本示例展示了list控件在商品分类列表中的应用,在listGroup里采用两个list-item分别展示了Group收缩和Group展开的两种列表形态,点击后会弹出相应的list列表。 | JS | | [JSList商品列表](https://gitee.com/openharmony/app_samples/tree/master/UI/JsList) | 本示例展示了list控件在商品分类列表中的应用,在listGroup里采用两个list-item分别展示了Group收缩和Group展开的两种列表形态,点击后会弹出相应的list列表。 | JS |
| [JSPanel](https://gitee.com/openharmony/app_samples/tree/master/UI/JsPanel) | JS提供一种轻量级的内容展示面板,此面板可滑动,可自定义触发方式、弹出高度等属性。本示例通过可滑动面板展示了商品详细信息与平台保障。 | JS | | [JSPanel](https://gitee.com/openharmony/app_samples/tree/master/UI/JsPanel) | JS提供一种轻量级的内容展示面板,此面板可滑动,可自定义触发方式、弹出高度等属性。本示例通过可滑动面板展示了商品详细信息与平台保障。 | JS |
| [JsSvg](https://gitee.com/openharmony/app_samples/tree/master/UI/JsSvg) | 本示例展示了JS中&lt;svg/>组件及其子组件的使用,包括<svg\>、<rect\>、<circle\>、<ellipse\>、<path\>、<line\>、<polygon\>、<polyline\>、<text\>、<animate\>、<animateTransform\> 。 | JS | | [JsSvg](https://gitee.com/openharmony/app_samples/tree/master/UI/JsSvg) | 本示例展示了JS中<svg/>组件及其子组件的使用,包括<svg\>、<rect\>、<circle\>、<ellipse\>、<path\>、<line\>、<polygon\>、<polyline\>、<text\>、<animate\>、<animateTransform\> 。 | JS |
| [JS自定义组件](https://gitee.com/openharmony/app_samples/tree/master/UI/JSUICustomComponent) | 自定义组件是用户根据业务需求,将已有的组件组合,封装成的新组件,可以在工程中多次调用,提高代码的可读性。本示例展示了JS中自定义组件的使用,包括基本用法、自定义事件、Props和事件参数。 | JS | | [JS自定义组件](https://gitee.com/openharmony/app_samples/tree/master/UI/JSUICustomComponent) | 自定义组件是用户根据业务需求,将已有的组件组合,封装成的新组件,可以在工程中多次调用,提高代码的可读性。本示例展示了JS中自定义组件的使用,包括基本用法、自定义事件、Props和事件参数。 | JS |
#### 新增Codelabs #### 新增Codelabs
**表2** Codelabs列表 **表5** Codelabs列表
| 名称 | 简介 | 开发语言 | | 名称 | 简介 | 开发语言 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
...@@ -190,7 +190,7 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_ ...@@ -190,7 +190,7 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_
## 修复缺陷列表 ## 修复缺陷列表
**表4** 修复缺陷ISSUE列表 **表6** 修复缺陷ISSUE列表
| ISSUE单号 | 问题描述 | | ISSUE单号 | 问题描述 |
| -------- | -------- | | -------- | -------- |
...@@ -203,7 +203,7 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_ ...@@ -203,7 +203,7 @@ _[Changelog](api-change/v3.1-beta/changelog-v3.1-beta.md)_
## 遗留缺陷列表 ## 遗留缺陷列表
**表6** 遗留缺陷列表 **表7** 遗留缺陷列表
| ISSUE | 问题描述 | 影响 | 计划解决日期 | | ISSUE | 问题描述 | 影响 | 计划解决日期 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
......
# JS API 差异报告 # JS API 差异报告
OpenHarmony 3.1 Beta1相较于OpenHarmony 3.0 LTS版本的API变更如下: OpenHarmony 3.1 Beta相较于OpenHarmony 3.0 LTS版本的API变更如下:
## 标准系统接口变更 ## 标准系统接口变更
...@@ -43,7 +43,7 @@ OpenHarmony 3.1 Beta1相较于OpenHarmony 3.0 LTS版本的API变更如下: ...@@ -43,7 +43,7 @@ OpenHarmony 3.1 Beta1相较于OpenHarmony 3.0 LTS版本的API变更如下:
| Ark UI框架-画布组件 | Lottie | 新增 | 新增Lottie库的支持。 | | Ark UI框架-画布组件 | Lottie | 新增 | 新增Lottie库的支持。 |
| Ark UI框架-全局UI方法 | ActionSheet | 新增 | 新增列表选择弹窗。 | | Ark UI框架-全局UI方法 | ActionSheet | 新增 | 新增列表选择弹窗。 |
| USB服务-usb | getDevices(): Array<Readonly<USBDevice>> | 新增 | 新增获取USB设备列表的接口 | | USB服务-usb | getDevices(): Array<Readonly<USBDevice>> | 新增 | 新增获取USB设备列表的接口 |
| USB服务-usb | connectDevice(device: USBDevice): Readonly<USBDevicePipe> | 新增 | 新增根据{@link getDevices()}返回的设备信息打开USB设备的接口 | | USB服务-usb | connectDevice(device: USBDevice): Readonly<USBDevicePipe> | 新增 | 新增根据**getDevices()**返回的设备信息打开USB设备的接口 |
| USB服务-usb | hasRight(deviceName: string): boolean | 新增 | 新增判断是否有权访问设备的接口 | | USB服务-usb | hasRight(deviceName: string): boolean | 新增 | 新增判断是否有权访问设备的接口 |
| USB服务-usb | requestRight(deviceName: string): Promise<boolean> | 新增 | 新增请求给定软件包的临时权限以访问设备的接口 | | USB服务-usb | requestRight(deviceName: string): Promise<boolean> | 新增 | 新增请求给定软件包的临时权限以访问设备的接口 |
| USB服务-usb | claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number | 新增 | 新增获取接口的接口 | | USB服务-usb | claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number | 新增 | 新增获取接口的接口 |
......
...@@ -4,7 +4,7 @@ OpenHarmony 3.1 Beta相较于OpenHarmony 3.0 LTS版本的API变更如下: ...@@ -4,7 +4,7 @@ OpenHarmony 3.1 Beta相较于OpenHarmony 3.0 LTS版本的API变更如下:
## 标准系统接口变更 ## 标准系统接口变更
| 模块名称 | 接口名称 | 变更类型 | 变更类型 | | 模块名称 | 接口名称 | 变更类型 | 变更说明 |
| ------------------ | ------------------------------------------------------------ | -------- | ------------------------------------------------- | | ------------------ | ------------------------------------------------------------ | -------- | ------------------------------------------------- |
| bundle | napi_value ClearBundleCache(napi_env env, napi_callback_info info) | 新增 | 新增清理应用缓存接口 | | bundle | napi_value ClearBundleCache(napi_env env, napi_callback_info info) | 新增 | 新增清理应用缓存接口 |
| bundle | napi_value SetApplicationEnabled(napi_env env, napi_callback_info info) | 新增 | 新增设置应用使能接口 | | bundle | napi_value SetApplicationEnabled(napi_env env, napi_callback_info info) | 新增 | 新增设置应用使能接口 |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册