diff --git a/en/application-dev/dfx/hitracemeter-guidelines.md b/en/application-dev/dfx/hitracemeter-guidelines.md index 2b8b7a562a7e896db40faba9de194777c4d1c170..3adf91286aaf410d7862c60320878e57acb359e8 100644 --- a/en/application-dev/dfx/hitracemeter-guidelines.md +++ b/en/application-dev/dfx/hitracemeter-guidelines.md @@ -20,16 +20,16 @@ hiTraceMeter provides APIs for system performance tracing. You can call the APIs Due to the asynchronous I/O feature of JS, the hiTraceMeter module provides only asynchronous APIs. ## Available APIs - -The performance tracing APIs are provided by the **hiTraceMeter** module. For details, see [API Reference](../reference/apis/js-apis-hitracemeter.md). -**Table 1** APIs for performance tracing +The performance tracing APIs are provided by the **hiTraceMeter** module. For details, see [API Reference]( ../reference/apis/js-apis-hitracemeter.md). + +**APIs for performance tracing** -| API| Return Value| Description| +| API | Return Value | Description | | ---------------------------------------------------------------------------- | --------- | ------------ | -| hiTraceMeter.startTrace(name: string, taskId: number) | void | Starts a trace task. If multiple trace tasks with the same name need to be performed at the same time or a trace task needs to be performed multiple times concurrently, different task IDs must be specified in **startTrace**. If the trace tasks with the same name are not performed at the same time, the same task ID can be used.| -| hiTraceMeter.finishTrace(name: string, taskId: number) | void | Stops a trace task. The values of **name** and **taskId** must be the same as those of **hiTraceMeter.startTrace**.| -| hiTraceMeter.traceByValue(name: string, value: number) | void | Traces the value changes of a variable.| +| hiTraceMeter.startTrace(name: string, taskId: number) | void | Marks the start of a trace task. If multiple trace tasks with the same name need to be performed at the same time or a trace task needs to be performed multiple times concurrently, different task IDs must be specified in **startTrace**. If the trace tasks with the same name are not performed at the same time, the same task ID can be used.| +| hiTraceMeter.finishTrace(name: string, taskId: number) | void | Marks the end of a trace task. The values of **name** and **taskId** must be the same as those of **hiTraceMeter.startTrace**.| +| hiTraceMeter.traceByValue(name: string, value: number) | void | Marks the value changes of a numeric variable in a trace task.| ## How to Develop @@ -46,12 +46,12 @@ In this example, distributed call chain tracing begins when the application star }, onInit() { this.title = this.$t('strings.world'); - - // Start track tasks with the same name concurrently. + + // Start trace tasks with the same name concurrently. hiTraceMeter.startTrace("business", 1); // Keep the service process running. console.log(`business running`); - hiTraceMeter.startTrace("business", 2); // Start the second trace task while the first task is still running. The first and second tasks have the same name but different task IDs. + hiTraceMeter.startTrace("business", 2); // Start the second trace task with the same name while the first task is still running. The tasks are running concurrently and therefore their taskId must be different. // Keep the service process running. console.log(`business running`); hiTraceMeter.finishTrace("business", 1); @@ -59,14 +59,14 @@ In this example, distributed call chain tracing begins when the application star console.log(`business running`); hiTraceMeter.finishTrace("business", 2); - // Start track tasks with the same name at different times. + // Start trace tasks with the same name in serial mode. hiTraceMeter.startTrace("business", 1); // Keep the service process running. console.log(`business running`); hiTraceMeter.finishTrace("business", 1); // End the first trace task. // Keep the service process running. console.log(`business running`); - hiTraceMeter.startTrace("business", 1); // Start the second trace task after the first trace task ends. The two tasks have the same name and task ID. + hiTraceMeter.startTrace("business", 1); // Start the second trace task with the same name in serial mode. // Keep the service process running. console.log(`business running`); @@ -79,4 +79,95 @@ In this example, distributed call chain tracing begins when the application star } ``` -2. Click the run button on the application page. Then, you'll obtain the log information for service analysis. +2. Create an ArkTs application project. In the displayed **Project** window, choose **entry** > **src** > **main** > **ets** > **pages** > **index**, and double-click **index.js**. Add the code to implement performance tracing upon page loading. For example, if the name of the trace task is **HITRACE\_TAG\_APP**, the sample code is as follows: + + ```ts + import hitrace from '@ohos.hiTraceMeter'; + + @Entry + @Component + struct Index { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.message = 'Hello ArkUI'; + + // Start trace tasks with the same name concurrently. + hitrace.startTrace("HITRACE_TAG_APP", 1001); + // Keep the service process running. + console.log(`HITRACE_TAG_APP running`); + + // Start the second trace task with the same name while the first task is still running. The tasks are running concurrently and therefore their taskId must be different. + hitrace.startTrace("HITRACE_TAG_APP", 1002); + // Keep the service process running. + console.log(`HITRACE_TAG_APP running`); + + hitrace.finishTrace("HITRACE_TAG_APP", 1001); + hitrace.finishTrace("HITRACE_TAG_APP", 1002); + + // If trace tasks with the same name are not run concurrently, the same taskId can be used. + hitrace.startTrace("HITRACE_TAG_APP", 1003); + // Keep the service process running. + console.log(`HITRACE_TAG_APP running`); + // End the first trace task. + hitrace.finishTrace("HITRACE_TAG_APP", 1003); + + // Start the second trace task with the same name in serial mode. It uses a taskId different from the first trace task. + hitrace.startTrace("HITRACE_TAG_APP", 1004); + // Keep the service process running. + console.log(`HITRACE_TAG_APP running`); + let traceCount = 3; + hitrace.traceByValue("myTestCount", traceCount); + hitrace.finishTrace("HITRACE_TAG_APP", 1004); + + // Start the third trace task with the same name in serial mode. It uses a taskId same as the second trace task. + hitrace.startTrace("HITRACE_TAG_APP", 1004); + // Keep the service process running. + console.log(`HITRACE_TAG_APP running`); + // End the third trace task. + hitrace.finishTrace("HITRACE_TAG_APP", 1004); + + }) + } + .width('100%') + } + .height('100%') + } + } + ``` + +3. Click the run button on the application page. Then, run the following commands in sequence in shell: + + ```shell + hdc shell + hitrace --trace_begin app + ``` + + After the trace command is executed, call the hiTraceMeter APIs in your own service logic on the device. Then, run the following commands in sequence: + + ```shell + hitrace --trace_dump | grep tracing_mark_write + hitrace --trace_finish + ``` + + The following is an example of the captured trace data: + + ``` + <...>-3310 (-------) [005] .... 351382.921936: tracing_mark_write: S|3310|H:HITRACE_TAG_APP 1001 + <...>-3310 (-------) [005] .... 351382.922138: tracing_mark_write: S|3310|H:HITRACE_TAG_APP 1002 + <...>-3310 (-------) [005] .... 351382.922165: tracing_mark_write: F|3310|H:HITRACE_TAG_APP 1001 + <...>-3310 (-------) [005] .... 351382.922175: tracing_mark_write: F|3310|H:HITRACE_TAG_APP 1002 + <...>-3310 (-------) [005] .... 351382.922182: tracing_mark_write: S|3310|H:HITRACE_TAG_APP 1003 + <...>-3310 (-------) [005] .... 351382.922203: tracing_mark_write: F|3310|H:HITRACE_TAG_APP 1003 + <...>-3310 (-------) [005] .... 351382.922210: tracing_mark_write: S|3310|H:HITRACE_TAG_APP 1004 + <...>-3310 (-------) [005] .... 351382.922233: tracing_mark_write: C|3310|H:myTestCount 3 + <...>-3310 (-------) [005] .... 351382.922240: tracing_mark_write: F|3310|H:HITRACE_TAG_APP 1004 + <...>-3310 (-------) [005] .... 351382.922247: tracing_mark_write: S|3310|H:HITRACE_TAG_APP 1004 + <...>-3310 (-------) [005] .... 351382.922266: tracing_mark_write: F|3310|H:HITRACE_TAG_APP 1004 + ``` diff --git a/en/application-dev/napi/mindspore-lite-guidelines.md b/en/application-dev/napi/mindspore-lite-guidelines.md index 3dde56c84f321a6200c45b1839eccdabcba942aa..f91d4145a856b925d3172fb990ba90ccca2a5b20 100644 --- a/en/application-dev/napi/mindspore-lite-guidelines.md +++ b/en/application-dev/napi/mindspore-lite-guidelines.md @@ -61,7 +61,7 @@ The development process consists of the following main steps: The required model can be downloaded directly or obtained using the model conversion tool. - If the downloaded model is in the `.ms` format, you can use it directly for inference. The following uses the **mobilenetv2.ms** model as an example. - - If the downloaded model uses a third-party framework, such as TensorFlow, TensorFlow Lite, Caffe, or ONNX, you can use the [model conversion tool](https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/downloads.html#id1) to convert it to the `.ms` format. + - If the downloaded model uses a third-party framework, such as TensorFlow, TensorFlow Lite, Caffe, or ONNX, you can use the [model conversion tool](https://www.mindspore.cn/lite/docs/en/r1.5/use/downloads.html#id1) to convert it to the `.ms` format. 2. Create a context, and set parameters such as the number of runtime threads and device type. diff --git a/en/application-dev/reference/apis/js-apis-batteryStatistics.md b/en/application-dev/reference/apis/js-apis-batteryStatistics.md index 2bb3159fc3912a6a1fe272451ce31aa812052432..89cd4ab39ee2d9a7c7e0a4f9b03a4755b55b864f 100644 --- a/en/application-dev/reference/apis/js-apis-batteryStatistics.md +++ b/en/application-dev/reference/apis/js-apis-batteryStatistics.md @@ -46,7 +46,7 @@ batteryStats.getBatteryStats() console.info('battery statistics info: ' + data); }) .catch(err => { - console.error('get battery statisitics failed, err: ' + err); + console.error('get battery statistics failed, err: ' + err); }); ``` @@ -81,7 +81,7 @@ batteryStats.getBatteryStats((err, data) => { if (typeof err === 'undefined') { console.info('battery statistics info: ' + data); } else { - console.error('get battery statisitics failed, err: ' + err); + console.error('get battery statistics failed, err: ' + err); } }); ``` @@ -123,7 +123,7 @@ try { var value = batteryStats.getAppPowerValue(10021); console.info('battery statistics value of app is: ' + value); } catch(err) { - console.error('get battery statisitics value of app failed, err: ' + err); + console.error('get battery statistics value of app failed, err: ' + err); } ``` @@ -164,7 +164,7 @@ try { var percent = batteryStats.getAppPowerPercent(10021); console.info('battery statistics percent of app is: ' + percent); } catch(err) { - console.error('get battery statisitics percent of app failed, err: ' + err); + console.error('get battery statistics percent of app failed, err: ' + err); } ``` @@ -205,7 +205,7 @@ try { var value = batteryStats.getHardwareUnitPowerValue(ConsumptionType.CONSUMPTION_TYPE_SCREEN); console.info('battery statistics percent of hardware is: ' + percent); } catch(err) { - console.error('get battery statisitics percent of hardware failed, err: ' + err); + console.error('get battery statistics percent of hardware failed, err: ' + err); } ``` @@ -246,7 +246,7 @@ try { var value = batteryStats.getHardwareUnitPowerPercent(ConsumptionType.CONSUMPTION_TYPE_SCREEN); console.info('battery statistics percent of hardware is: ' + percent); } catch(err) { - console.error('get battery statisitics percent of hardware failed, err: ' + err); + console.error('get battery statistics percent of hardware failed, err: ' + err); } ``` diff --git a/en/application-dev/reference/apis/js-apis-system-fetch.md b/en/application-dev/reference/apis/js-apis-system-fetch.md index 529dc836e0132e77cae90c08f855d8ecb2c5fe8c..9493227bde6cd57366fc254bcbbf93216271b958 100644 --- a/en/application-dev/reference/apis/js-apis-system-fetch.md +++ b/en/application-dev/reference/apis/js-apis-system-fetch.md @@ -21,8 +21,6 @@ fetch(Object): void Obtains data through a network. -**Required permission**: ohos.permission.INTERNET - **System capability**: SystemCapability.Communication.NetStack **Parameters** @@ -33,7 +31,7 @@ Obtains data through a network. | header | Object | No| Request header.| | method | string | No| Request method. The default value is **GET**. The value can be **OPTIONS**, **GET**, **HEAD**, **POST**, **PUT**, **DELETE **or **TRACE**.| | responseType | string | No| Response type. The return type can be text or JSON. By default, the return type is determined based on **Content-Type** in the header returned by the server. For details, see return values in the **success** callback.| -| success | Function | No| Called when the data is obtained successfully.| +| success | Function | No| Called when the data is obtained successfully. The return value is [FetchResponse](#fetchresponse). | | fail | Function | No| Called when the data failed to be obtained.| | complete | Function | No| Called when the execution is complete.| @@ -46,12 +44,12 @@ Obtains data through a network. | Object | Not set| The default value of **Content-Type** is **application/x-www-form-urlencoded**. The **data** value is encoded based on the URL rule and appended in the request body.| | Object | application/x-www-form-urlencoded | The value of data is encoded based on the URL rule and is used as the request body.| -Return values in the **success** callback +## FetchResponse | Name| Type| Description| | -------- | -------- | -------- | | code | number | Server status code.| -| data | string \| Object | The type of the returned data is determined by **responseType**. For details, see the mapping between **responseType** and **data** in **success** callback.| +| data | string \| Object | The data type is determined by **responseType**. For details, see the mapping between **responseType** and **data** in **success** callback.| | headers | Object | All headers in the response from the server.| **Table 2** Mapping between responseType and data in success callback @@ -87,8 +85,8 @@ export default { ``` -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> HTTPS is supported by default. To support HTTP, you need to add **"network"** to the **config.json** file, and set the attribute **"cleartextTraffic"** to **true**. That is: +> **NOTE**
+> HTTPS is supported by default. To support HTTP, you need to add **"network"** to the **config.json** file, and set the attribute **"cleartextTraffic"** to **true**. That is: > > ``` > { diff --git a/en/application-dev/reference/apis/js-apis-system-network.md b/en/application-dev/reference/apis/js-apis-system-network.md index 1bf121889896276a676f177300f341da5fb327fe..5fd92bf9e2e58c360ffcd6d6f27408281a53b22a 100644 --- a/en/application-dev/reference/apis/js-apis-system-network.md +++ b/en/application-dev/reference/apis/js-apis-system-network.md @@ -1,6 +1,6 @@ # Network State -> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:** +> **NOTE**
> - The APIs of this module are no longer maintained since API version 7. It is recommended that you use [`@ohos.telephony.observer`](js-apis-observer.md) instead. > > - The initial APIs of this module are supported since API version 3. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -33,22 +33,15 @@ Obtains the network type. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | -| success | Function | No | Called when the execution is successful. | -| fail | Function | No | Called when the operation fails. | -| complete | Function | No | Called when the execution is complete | - -The following value will be returned when the multimedia volume is obtained. - -| Parameter | Type | Description | -| -------- | -------- | -------- | -| metered | boolean | Whether the billing is based on the data volume. | -| type | string | Network type. The value can be **2G**, **3G**, **4G**, **5G**, **WiFi**, or **none**. | +| success | Function | No | Called when the execution is successful. The return value is [FetchResponse](#fetchresponse). | +| fail | Function | No | Called when the operation fails. | +| complete | Function | No | Called when the execution is complete. | One of the following error codes will be returned if the operation fails. -| Error Code | Description | +| Error Code | Description | | -------- | -------- | -| 602 | The current permission is not declared. | +| 602 | The current permission is not declared. | **Example** @@ -80,22 +73,15 @@ Listens to the network connection state. If this method is called multiple times | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | -| success | Function | No | Called when the network connection state changes | -| fail | Function | No | Called when the multimedia volume fails to be obtained. | - -The following value will be returned when the multimedia volume is obtained. - -| Parameter | Type | Description | -| -------- | -------- | -------- | -| metered | boolean | Whether the billing is based on the data volume. | -| type | string | Network type. The value can be **2G**, **3G**, **4G**, **5G**, **WiFi**, or **none**. | +| success | Function | No | Called when the network connection state changes. The return value is [FetchResponse](#fetchresponse). | +| fail | Function | No | Called when the multimedia volume fails to be obtained. | One of the following error codes will be returned if the listening fails. -| Error Code | Description | +| Error Code | Description | | -------- | -------- | -| 602 | The current permission is not declared. | -| 200 | The subscription fails. | +| 602 | The current permission is not declared. | +| 200 | The subscription fails. | **Example** @@ -131,4 +117,12 @@ export default { network.unsubscribe(); }, } -``` \ No newline at end of file +``` + + +## NetworkResponse + +| Name | Type | Description | +| -------- | -------- | -------- | +| metered | boolean | Whether the billing is based on the data volume. | +| type | string | Network type. The value can be **2G**, **3G**, **4G**, **5G**, **WiFi**, or **none**. | \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-webSocket.md b/en/application-dev/reference/apis/js-apis-webSocket.md index 2b2fa3af70da2fd1725ef0221b8fd7cf5654f531..ae1f200331f1236cf299108ef0e871c4c6dcb6c0 100644 --- a/en/application-dev/reference/apis/js-apis-webSocket.md +++ b/en/application-dev/reference/apis/js-apis-webSocket.md @@ -4,7 +4,7 @@ The **webSocket** module implements WebSocket connection management and operatio > **NOTE**
> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> + You can use WebSocket to establish a bidirectional connection between a server and a client. Before doing this, you need to use the [createWebSocket](#websocketcreatewebsocket) API to create a [WebSocket](#websocket) object and then use the [connect](#connect) API to connect to the server. If the connection is successful, the client will receive a callback of the [open](#onopen) event. Then, the client can communicate with the server using the [send](#send) API. When the server sends a message to the client, the client will receive a callback of the [message](#onmessage) event. If the client no longer needs this connection, it can call the [close](#close) API to disconnect from the server. Then, the client will receive a callback of the [close](#onclose) event. diff --git a/en/device-dev/get-code/sourcecode-acquire.md b/en/device-dev/get-code/sourcecode-acquire.md index 08809554460c986eae58f3d0a0ece2b6bb58904d..fabdaf59165ce21b79f602a063f7b401a4438289 100644 --- a/en/device-dev/get-code/sourcecode-acquire.md +++ b/en/device-dev/get-code/sourcecode-acquire.md @@ -168,28 +168,28 @@ You must install **Node.js** and HPM on your local PC. The installation procedur To ensure the download performance, you are advised to download the source code or the corresponding solution from the image library of the respective site listed in the table below. -The table below provides only the sites for downloading the latest OpenHarmony LTS code. For details about how to obtain the source code of earlier versions, see the [Release Notes]([Release Notes](../../release-notes/Readme.md). +The table below provides only the sites for downloading the latest OpenHarmony LTS code. For details about how to obtain the source code of earlier versions, see the [Release Notes](../../release-notes/Readme.md). **Table 1** Sites for acquiring source code -| **LTS Code**| **Version Information**| **Site**| **SHA-256 Verification Code**| -| -------- | -------- | -------- | -------- | -| Full code base (for mini, small, and standard systems)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/code-v3.0-LTS.tar.gz) | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/code-v3.0-LTS.tar.gz.sha256)| -| Standard system solution (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/standard.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/standard.tar.gz.sha256)| -| Hi3861 solution (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_pegasus.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_pegasus.tar.gz.sha256)| -| Hi3518 solution (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_aries.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_aries.tar.gz.sha256)| -| Hi3516 solution-LiteOS (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus.tar.gz) | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus.tar.gz)| -| Hi3516 solution-Linux (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus_linux.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus_linux.tar.gz.sha256) | -| Release Notes | 3.0 | [Download](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.0-LTS/en/release-notes/OpenHarmony-v3.0-LTS.md)| - | -| **Source code of the Latest Release**| **Version Information**| **Site**| **SHA-256 Verification Code**| -| Full code base (for mini, small, and standard systems)| 3.2 Beta3 | [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/code-v3.2-Beta3.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/code-v3.2-Beta3.tar.gz.sha256)| -| RK3568 standard system solution (binary)| 3.2 Beta3 | [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/standard_rk3568.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.1.1/standard_rk3568.tar.gz.sha256)| -| Hi3861 solution (binary)| 3.2 Beta3 | [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/hispark_pegasus.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/hispark_pegasus.tar.gz.sha256) | -| Hi3516 solution-LiteOS (binary)| 3.2 Beta3 | [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/hispark_taurus.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta3/hispark_taurus_LiteOS.tar.gz.sha256)| -| Hi3516 solution-Linux (binary)| 3.2 Beta3 | [Download](https://repo.huaweicloud.com/openharmony/os/3.2-Beta3/hispark_taurus_linux.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta3/hispark_taurus_Linux.tar.gz.sha256)| -| Release Notes | 3.2 Beta3 | [Download](../../release-notes/OpenHarmony-v3.2-beta3.md)| - | -| **Compiler Toolchain**| **Version Information**| **Site**| **SHA-256 Verification Code**| -| Compiler toolchain| - | [Download](https://repo.huaweicloud.com/openharmony/os/2.0/tool_chain/)| - | +| **LTS Code**| **Version**| **Site**| **SHA-256 Checksum**| **Software Package Size**| +| -------- | -------- | -------- | -------- | -------- | +| Full code base (for mini, small, and standard systems)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/code-v3.0-LTS.tar.gz) | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/code-v3.0-LTS.tar.gz.sha256)| 7.0 GB | +| Standard system solution (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/standard.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/standard.tar.gz.sha256)| 973.7 MB | +| Hi3861 solution (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_pegasus.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_pegasus.tar.gz.sha256)| 16.5 MB | +| Hi3518 solution (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_aries.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_aries.tar.gz.sha256)| 158.1 MB | +| Hi3516 solution-LiteOS (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus.tar.gz) | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus.tar.gz)| 248.9 MB | +| Hi3516 solution-Linux (binary)| 3.0 | [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus_linux.tar.gz)| [Download](https://repo.huaweicloud.com/openharmony/os/3.0/hispark_taurus_linux.tar.gz.sha256) | 418.1 MB | +| RELEASE-NOTES | 3.0 | [Download](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.0-LTS/en/release-notes/OpenHarmony-v3.0-LTS.md)| - | - | +| **Source Code of the Latest Release**| **Version**| **Site**| **SHA-256 Checksum**| **Software Package Size**| +| Full code base (for mini, small, and standard systems)| 3.2 Beta4 | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/code-v3.2-Beta4.tar.gz) | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/code-v3.2-Beta4.tar.gz.sha256) | 19.0 GB | +| RK3568 standard system solution (binary)| 3.2 Beta4 | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/dayu200_standard_arm32.tar.gz) | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/dayu200_standard_arm32.tar.gz.sha256) | 3.2 GB | +| Hi3861 solution (binary)| 3.2 Beta4 | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/hispark_pegasus.tar.gz) | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/hispark_pegasus.tar.gz.sha256) | 22.6 MB | +| Hi3516 solution-LiteOS (binary)| 3.2 Beta4 | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/hispark_taurus_LiteOS.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/hispark_taurus_LiteOS.tar.gz.sha256)| 293.9 MB | +| Hi3516 solution-Linux (binary)| 3.2 Beta4 | [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/hispark_taurus_Linux.tar.gz)| [Download](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta4/hispark_taurus_Linux.tar.gz.sha256)| 173.2 MB | +| RELEASE-NOTES | 3.2 Beta4 | [Download](../../release-notes/OpenHarmony-v3.2-beta4.md)| - | - | +| **Compiler Toolchain**| **Version**| **Site**| **SHA-256 Checksum**| **Software Package Size**| +| Compiler toolchain| - | [Download](https://repo.huaweicloud.com/openharmony/os/2.0/tool_chain/)| - | - | ## Method 4: Acquiring Source Code from the GitHub Image Repository @@ -219,82 +219,19 @@ The following table describes the OpenHarmony source code directories. **Table 2** Source code directories - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

-

Description

-

applications

-

Application samples, for example, camera

-

base

-

Basic software service subsystem set and hardware service subsystem set

-

build

-

Bundle-based compilation, build, and configuration scripts

-

docs

-

Reference documents

-

domains

-

Enhanced software service subsystem set

-

drivers

-

Driver subsystem

-

foundation

-

Basic system capability subsystem set

-

kernel

-

Kernel subsystem

-

prebuilts

-

Compiler and toolchain subsystem

-

test

-

Testing subsystem

-

third_party

-

Open-source third-party software

-

utils

-

Commonly used development tools

-

vendor

-

Vendor-provided software

-

build.py

-

Compilation script file

-
+| Directory| Description| +| -------- | -------- | +| applications | Application samples, for example, **camera**.| +| base | Basic software service subsystem set and hardware service subsystem set.| +| build | Bundle-based compilation, building, and configuration scripts.| +| docs | Reference documents.| +| domains | Enhanced software service subsystem set.| +| drivers | Driver subsystem.| +| foundation | Basic system capability subsystem set.| +| kernel | Kernel subsystem.| +| prebuilts | Compiler and tool chain subsystem.| +| test | Test subsystem.| +| third_party | Open-source third-party software.| +| utils | Commonly used development utilities.| +| vendor | Vendor-provided software.| +| build.py | Build script file.|