提交 4fa41c75 编写于 作者: Y yang-lin-16

更新DevEco Studio指南英文版

Signed-off-by: Nyang-lin-16 <yanglin5@huawei.com>
上级 43fde1d4
# Configuring the OpenHarmony App Signature
# Configuring the OpenHarmony App Signature<a name="EN-US_TOPIC_0000001159890371"></a>
- [Generating a Key Store and CSR](#Generating-a-Key-Store-and-CSR)
- [In DevEco Studio](#In-DevEco-Studio)
- [In a Command-Line Tool](#In-a-Command-Line-Tool)
- [Generating an App Certificate](#Generating-an-App-Certificate)
- [Generating the App Profile](#Generating-the-App-Profile)
- [Configuring App Signature Information](#Configuring-App-Signature-Information)
- [Generating a Key Store and CSR](#section153146467405)
- [In DevEco Studio](#section1298903211472)
- [In a Command-Line Tool](#section1276462024811)
Before running and debugging the OpenHarmony app on a real device, you need to sign the app. This section describes how to configure the signature of an OpenHarmony app. Operation instructions are the same in _HUAWEI DevEco Studio User Guide_ except this section. For details, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387). See the following figure for the process of configuring app signature information.
- [Generating an App Certificate](#section136609429562)
- [Generating the App Profile](#section2048641015325)
- [Configuring App Signature Information](#section10152423193310)
Before running and debugging the OpenHarmony app on a real device, you need to sign the app. This section describes how to configure the signature of an OpenHarmony app. Operation instructions are the same in _HUAWEI DevEco Studio User Guide_ except this section. For details, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387). See the following figure for the process of configuring app signature information.
![en-us_image_0000001113808114](figures/en-us_image_0000001113808114.png)
![](figures/en-us_image_0000001113808114.png)
## Generating a Key Store and CSR<a name="section153146467405"></a>
## Generating a Key Store and CSR
OpenHarmony uses digital certificates \(.cer\) and **Profile** files \(.p7b\) to ensure app integrity. Before applying for these files, you need to generate a key store \(.p12\) and a certificate signing request \(.csr\). You can do so in DevEco Studio or a command-line tool.
OpenHarmony uses digital certificates (.cer) and **Profile** files (.p7b) to ensure app integrity. Before applying for these files, you need to generate a key store (.p12) and a certificate signing request (.csr). You can do so in DevEco Studio or a command-line tool.
### In DevEco Studio<a name="section1298903211472"></a>
1. On the menu bar, choose **Build** \> **Generate Key and CSR**.
### In DevEco Studio
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If you have a local key, click **Skip** in the **Generate Key** window and use the key to generate a CSR file.
1. On the menu bar, choose **Build** &gt; **Generate Key and CSR**.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If you have a local key, click **Skip** in the **Generate Key** window and use the key to generate a CSR file.
2. In **Key Store File**, click **Choose Existing** to select an existing key store \(.p12 file that contains a key\) or **New** to create one. The following describes how to create a key store.
2. In **Key Store File**, click **Choose Existing** to select an existing key store (.p12 file that contains a key) or **New** to create one. The following describes how to create a key store.
![en-us_image_0000001119560738](figures/en-us_image_0000001119560738.png)
![](figures/en-us_image_0000001119560738.png)
3. In the **Create Key Store** dialog box, set the following parameters and click **OK**.
- **Key Store File**: Select the path for storing the key store.
- **Password**: Set the key store password, which must contain at least 8 characters that include two types of the following: uppercase letters, lowercase letters, digits, and special characters. Do not lose the password as it will be used later in configuring the signature.
- **Confirm Password**: Enter the key store password again.
3. In the **Create Key Store** dialog box, set the following parameters and click **OK**.
![en-us_image_0000001152674854](figures/en-us_image_0000001152674854.png)
- **Key Store File**: Select the path for storing the key store.
- **Password**: Set the key store password, which must contain at least 8 characters that include two types of the following: uppercase letters, lowercase letters, digits, and special characters. Do not lose the password as it will be used later in configuring the signature.
- **Confirm Password**: Enter the key store password again.
4. In the **Generate Key** window, set the following parameters and click **Next**.
- **Alias**: Enter the alias of the key, which is used to identify the key name. Do not lose the alias as it will be used later in configuring the signature.
- **Password**: password of the key, which is automatically filled in and the same as the keystore password.
- **Validity**: Specify the certificate validity period. A validity period of 25 years or longer is recommended to cover the entire lifecycle of your app/service.
- **Certificate**: Enter basic certificate information.
![](figures/en-us_image_0000001152674854.png)
![en-us_image_0000001117639668](figures/en-us_image_0000001117639668.png)
4. In the **Generate Key** window, set the following parameters and click **Next**.
5. In the **Generate CSR** window, select the key and set the storage path of the CSR file.
![en-us_image_0000001117479776](figures/en-us_image_0000001117479776.png)
- **Alias**: Enter the alias of the key, which is used to identify the key name. Do not lose the alias as it will be used later in configuring the signature.
- **Password**: password of the key, which is automatically filled in and the same as the keystore password.
- **Validity**: Specify the certificate validity period. A validity period of 25 years or longer is recommended to cover the entire lifecycle of your app/service.
- **Certificate**: Enter basic certificate information.
6. Click **OK**. You can then obtain the generated keystore file (.p12) and CSR file (.csr) from the storage path.
![en-us_image_0000001163839541](figures/en-us_image_0000001163839541.png)
![](figures/en-us_image_0000001117639668.png)
5. In the **Generate CSR** window, select the key and set the storage path of the CSR file.
### In a Command-Line Tool
![](figures/en-us_image_0000001117479776.png)
Use the Keytool in the Open JDK to generate a CSR.
6. Click **OK**. You can then obtain the generated keystore file \(.p12\) and CSR file \(.csr\) from the storage path.
1. Run the Keytool as an administrator.
![en-us_image_0000001248045243](figures/en-us_image_0000001248045243.png)
![](figures/en-us_image_0000001163839541.png)
2. Switch to the directory where the Keytool is located.
![en-us_image_0000001247125297](figures/en-us_image_0000001247125297.png)
3. Run the following command to generate a key store. This example creates a key store named **ide_demo_app.p12** and saves it to the root directory of the D drive.
```
keytool -genkeypair -alias "ide_demo_app" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=HUAWEI,OU=HUAWEI IDE,CN=ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc
```
### In a Command-Line Tool<a name="section1276462024811"></a>
Parameters in the key store:
Use the Keytool in the Open JDK to generate a CSR.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> Record the values of **alias**, **storepass**, and **keypass**, which will be used in [Configuring App Signature Information](#configuring-app-signature-information).
1. Run the Keytool as an administrator.
- **alias**: alias of the key, which is used to identify the key name.
- **sigalg**: signature algorithm, which is automatically set to **SHA256withECDSA** and cannot be changed.
- **dname**:
- **C**: country/region code, such as **CN**.
- **O**: organization name, such as **HUAWEI**.
- **OU**: organization unit name, such as **HUAWEI IDE**.
- **CN**: your first name and last name. Set this parameter to be the same as **alias**.
- **validity**: certificate validity period. It is recommended that you set this parameter to **9125** (25 years).
- **storepass**: key store password, which must contain at least 8 characters that include two types of the following: uppercase letters, lowercase letters, digits, and special characters. Do not lose the password as it will be used later in configuring the signature.
- **keypass**: password of the key. The value must be the same as that of **storepass**.
![](figures/en-us_image_0000001248045243.png)
4. Run the following command. After the command is executed, enter the **storepass** to generate a CSR in .csr format.
```
keytool -certreq -alias "ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -file d:\\idedemokey.csr
```
2. Switch to the directory where the Keytool is located.
Parameters in the CSR:
![](figures/en-us_image_0000001247125297.png)
- **alias**: The value must be the same as the alias set in 3.
- **file**: name of the generated CSR. The file name extension is .csr.
3. Run the following command to generate a key store. This example creates a key store named **ide\_demo\_app.p12** and saves it to the root directory of the D drive.
```
keytool -genkeypair -alias "ide_demo_app" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=HUAWEI,OU=HUAWEI IDE,CN=ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc
```
## Generating an App Certificate
Parameters in the key store:
Use the CSR generated in [Generating a Key Store and CSR](#generating-a-key-store-and-csr) to generate the digital certificate required for app signing. The method is as follows:
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>Record the values of **alias**, **storepass**, and **keypass**, which will be used in [Configuring App Signature Information](#section10152423193310).
Go to the **Sdk\toolchains\lib** directory where the OpenHarmony SDK is saved (see [Configuring the OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md) for details) in the DevEco Studio installation directory, and run the following command in the CLI. If the **keytool** command cannot be executed, add the JDK environment variables to the system environment variables. You only need to modify the input and output to quickly generate a certificate. That is, modify **-infile** to specify the path of the CSR and **-outfile** to specify the name and path of the output certificate.
- **alias**: alias of the key, which is used to identify the key name.
- **sigalg**: signature algorithm, which is automatically set to **SHA256withECDSA** and cannot be changed.
- **dname**:
- **C**: country/region code, such as **CN**.
- **O**: organization name, such as **HUAWEI**.
- **OU**: organization unit name, such as **HUAWEI IDE**.
- **CN**: your first name and last name. Set this parameter to be the same as **alias**.
```
keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc
```
- **validity**: certificate validity period. It is recommended that you set this parameter to **9125** \(25 years\).
- **storepass**: key store password, which must contain at least 8 characters that include two types of the following: uppercase letters, lowercase letters, digits, and special characters. Do not lose the password as it will be used later in configuring the signature.
- **keypass**: password of the key. The value must be the same as that of **storepass**.
Refer to the following descriptions about the parameters in the command:
4. Run the following command. After the command is executed, enter the **storepass** to generate a CSR in .csr format.
- **alias**: alias of the CA private key used for issuing certificates. The CA private key of the OpenHarmony community is stored in the **OpenHarmony.p12** key store file. This parameter cannot be modified.
```
keytool -certreq -alias "ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -file d:\\idedemokey.csr
```
- **infile**: path of the CSR file.
Parameters in the CSR:
- **outfile**: name and path of the certificate chain file.
- **alias**: The value must be the same as the alias set in 3.
- **file**: name of the generated CSR. The file name extension is .csr.
- **keystore**: path of the CA key store for issuing certificates. The name of the OpenHarmony key store file is **OpenHarmony.p12**. The file is stored in **Sdk\toolchains\lib** of the OpenHarmony SDK. This parameter cannot be modified. Note that the **OpenHarmony.p12** file is not the .p12 file generated in [Generating a Key Store and CSR](#generating-a-key-store-and-csr).
- **sigalg**: certificate signature algorithm. This parameter cannot be modified.
## Generating an App Certificate<a name="section136609429562"></a>
- **storepass**: key store password. The password is **123456** and cannot be changed.
Use the CSR generated in [Generating a Key Store and CSR](#section153146467405) to generate the digital certificate required for app signing. The method is as follows:
- **ext**: certificate extension. This parameter cannot be modified.
Go to the **Sdk\\toolchains\\lib** directory where the OpenHarmony SDK is saved \(see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md) for details\) in the DevEco Studio installation directory, and run the following command in the CLI. If the **keytool** command cannot be executed, add the JDK environment variables to the system environment variables. You only need to modify the input and output to quickly generate a certificate. That is, modify **-infile** to specify the path of the CSR and **-outfile** to specify the name and path of the output certificate.
- **validity**: certificate validity period, which is user-defined.
```
keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc
```
- **rfc**: specifies the output file format. This parameter cannot be modified.
Refer to the following descriptions about the parameters in the command:
- **alias**: alias of the CA private key used for issuing certificates. The CA private key of the OpenHarmony community is stored in the **OpenHarmony.p12** key store file. This parameter cannot be modified.
- **infile**: path of the CSR file.
- **outfile**: name and path of the certificate chain file.
- **keystore**: path of the CA key store for issuing certificates. The name of the OpenHarmony key store file is **OpenHarmony.p12**. The file is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified. Note that the **OpenHarmony.p12** file is not the .p12 file generated in [Generating a Key Store and CSR](#section153146467405).
- **sigalg**: certificate signature algorithm. This parameter cannot be modified.
- **storepass**: key store password. The password is **123456** and cannot be changed.
- **ext**: certificate extension. This parameter cannot be modified.
- **validity**: certificate validity period, which is user-defined.
- **rfc**: specifies the output file format. This parameter cannot be modified.
## Generating the App Profile
## Generating the App Profile<a name="section2048641015325"></a>
The profile contains the following inforamtion about the OpenHarmony app: bundle name, digital certificate information, certificate permissions that can be applied for by the app, and devices where the app can be debugged (the device list will be empty if the app type is Release). Each app package must contain a profile file.
The profile contains the following inforamtion about the OpenHarmony app: bundle name, digital certificate information, certificate permissions that can be applied for by the app, and devices where the app can be debugged \(the device list will be empty if the app type is Release\). Each app package must contain a profile file.
Go to the **Sdk\toolchains\lib** directory, open the command-line tool, and run the following command.
Go to the **Sdk\\toolchains\\lib** directory, open the command-line tool, and run the following command.
```
java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name app bundle name --permission restricted permission name (optional) --permission restricted permission name (optional) --distribution-certificate myApplication_ohos.cer
......@@ -134,62 +134,45 @@ java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --o
Refer to the following descriptions about the parameters in the command:
- **provisionsigtool**: tool for generating the profile which is stored in **Sdk\toolchains\lib** of the OpenHarmony SDK.
- **in**: path of the profile template which is stored in **Sdk\toolchains\lib** of the OpenHarmony SDK. This parameter cannot be modified.
- **out**: name and path of the profile.
- **keystore**: path of the key store for issuing certificates. The name of the OpenHarmony key store file is **OpenHarmony.p12**. The file is stored in **Sdk\toolchains\lib** of the OpenHarmony SDK. This parameter cannot be modified.
- **storepass**: key store password. The password is **123456** and cannot be changed.
- **alias**: alias of the private key used for app signing. The CA private key of the OpenHarmony community is stored in the **OpenHarmony.p12** key store file. This parameter cannot be modified.
- **sigalg**: certificate signature algorithm. This parameter cannot be modified.
- **cert**: path of the certificate of the signature profile. The file is stored in **Sdk\toolchains\lib** of the OpenHarmony SDK. This parameter cannot be modified.
- **validity**: certificate validity period, which is user-defined.
- **developer-id**: developer ID, which is a user-defined character string.
- **bundle-name**: app bundle name.
- **permission** (optional): If permissions are not required, this field can be left empty. You can add multiple restricted permissions in the following way: ohos.permission.READ_CONTACTS, ohos.permission.WRITE_CONTACTS.
- **distribution-certificate**: certificate generated in [Generating an App Certificate](#generating-an-app-certificate).
## Configuring App Signature Information
Before debugging on a real device, use the private key file (.p12), certificate file (.cer), and profile file (.p7b) to sign the target module.
Go to **File** &gt; **Project Structure** &gt; **Project** &gt; **Signing Configs** &gt; **debug**, deselect **Automatically generate signing**, and configure the signature information of the specified module.
- **Store File**: Select the key store file with the file name extension .p12, which is generated in [Generating a Key Store and CSR](#generating-a-key-store-and-csr).
- **Store Password**: Enter the key store password, which is the same as the key store password entered in [Generating a Key Store and CSR](#generating-a-key-store-and-csr).
- **provisionsigtool**: tool for generating the profile which is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK.
- **in**: path of the profile template which is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified.
- **out**: name and path of the profile.
- **keystore**: path of the key store for issuing certificates. The name of the OpenHarmony key store file is **OpenHarmony.p12**. The file is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified.
- **storepass**: key store password. The password is **123456** and cannot be changed.
- **alias**: alias of the private key used for app signing. The CA private key of the OpenHarmony community is stored in the **OpenHarmony.p12** key store file. This parameter cannot be modified.
- **sigalg**: certificate signature algorithm. This parameter cannot be modified.
- **cert**: path of the certificate of the signature profile. The file is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified.
- **validity**: certificate validity period, which is user-defined.
- **developer-id**: developer ID, which is a user-defined character string.
- **bundle-name**: app bundle name.
- **permission** \(optional\): If permissions are not required, this field can be left empty. You can add multiple restricted permissions in the following way: ohos.permission.READ\_CONTACTS, ohos.permission.WRITE\_CONTACTS.
- **distribution-certificate**: certificate generated in [Generating an App Certificate](#section136609429562).
- **Key Alias**: Enter the alias of the key, which is the same as the alias entered in [Generating a Key Store and CSR](#generating-a-key-store-and-csr).
## Configuring App Signature Information<a name="section10152423193310"></a>
- **Key Password**: Enter the key password, which is the same as the value of **Store Password**.
Before debugging on a real device, use the private key file \(.p12\), certificate file \(.cer\), and profile file \(.p7b\) to sign the target module.
- **Sign Alg**: Specify the signature algorithm, which has a fixed value of **SHA256withECDSA**.
Go to **File** \> **Project Structure** \> **Project** \> **Signing Configs** \> **debug**, deselect **Automatically generate signing**, and configure the signature information of the specified module.
- **Profile File**: Select the .p7b profile file generated in [Generating the App Profile](#generating-the-app-profile).
- **Store File**: Select the key store file with the file name extension .p12, which is generated in [Generating a Key Store and CSR](#section153146467405).
- **Store Password**: Enter the key store password, which is the same as the key store password entered in [Generating a Key Store and CSR](#section153146467405).
- **Key Alias**: Enter the alias of the key, which is the same as the alias entered in [Generating a Key Store and CSR](#section153146467405).
- **Key Password**: Enter the key password, which is the same as the value of **Store Password**.
- **Sign Alg**: Specify the signature algorithm, which has a fixed value of **SHA256withECDSA**.
- **Profile File**: Select the .p7b profile file generated in [Generating the App Profile](#section2048641015325).
- **Certpath File**: Select the .cer debug certificate generated in [Generating an App Certificate](#section136609429562).
- **Certpath File**: Select the .cer debug certificate generated in [Generating an App Certificate](#generating-an-app-certificate).
![](figures/en-us_image_0000001155643492.png)
![en-us_image_0000001155643492](figures/en-us_image_0000001155643492.png)
Click **OK** to save your configurations. Then you can view the signature configuration information in **build.gradle** of the project.
Click **OK** to save your configurations. Then you can view the signature configuration information in **build.gradle** of the project.
![](figures/en-us_image_0000001202722349.png)
![en-us_image_0000001202722349](figures/en-us_image_0000001202722349.png)
By default, the type of a HAP package compiled using DevEco Studio is set to **debug**. For a release type, click the **OhosBuild Variants** tab in the lower left corner of the project and set the type to **release**. For details about how to compile and build the HAP, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/build_hap-0000001053342418).
By default, the type of a HAP package compiled using DevEco Studio is set to **debug**. For a release type, click the **OhosBuild Variants** tab in the lower left corner of the project and set the type to **release**. For details about how to compile and build the HAP, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/build_hap-0000001053342418).
![](figures/en-us_image_0000001115066116.png)
![en-us_image_0000001115066116](figures/en-us_image_0000001115066116.png)
After the compilation is complete, you can obtain the HAP package of your OpenHarmony app from the **build** directory of the project.
After the compilation is complete, you can obtain the HAP package of your OpenHarmony app from the **build** directory of the project.
![](figures/en-us_image_0000001163918627.png)
![en-us_image_0000001163918627](figures/en-us_image_0000001163918627.png)
# Configuring the OpenHarmony SDK
# Configuring the OpenHarmony SDK<a name="EN-US_TOPIC_0000001113561194"></a>
- [Prerequisites](#Prerequisites)
- [Configuring the SDK Information](#Configuring-the-SDK-Information)
- [References](#References)
- [Setting Up the DevEco Studio Proxy](#Setting-Up-the-DevEco-Studio-Proxy)
- [Setting Up the npm Proxy](#Setting-Up-the-npm-Proxy)
- [Setting Up the Gradle Proxy](#Setting-Up-the-Gradle-Proxy)
To set up the OpenHarmony app development environment, configure the corresponding SDK information in DevEco Studio first.
- [Prerequisites](#section164161442154812)
- [Configuring the SDK Information](#section1265592425017)
- [References](#section0384143616409)
- [Setting Up the DevEco Studio Proxy](#section10129720184214)
- [Setting Up the npm Proxy](#section19984059114316)
- [Setting Up the Gradle Proxy](#section164211820465)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> The OpenHarmony SDK is not applicable to HarmonyOS app development, with some necessary toolchains removed.
To set up the OpenHarmony app development environment, configure the corresponding SDK information in DevEco Studio first.
## Prerequisites
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>The OpenHarmony SDK is not applicable to HarmonyOS app development, with some necessary toolchains removed.
[DevEco Studio 3.0 Beta1](https://developer.harmonyos.com/cn/develop/deveco-studio#download) or later has been downloaded and installed.
## Prerequisites<a name="section164161442154812"></a>
[DevEco Studio 3.0 Beta1](https://developer.harmonyos.com/cn/develop/deveco-studio#download) or later has been downloaded and installed.
## Configuring the SDK Information
## Configuring the SDK Information<a name="section1265592425017"></a>
DevEco Studio manages SDKs and toolchains using SDK Manager. OpenHarmony contains the following SDK packages:
| Type | Package&nbsp;Name | Description |
| -------- | -------- | -------- |
| SDK | JS | SDK&nbsp;for&nbsp;JS. |
| eTS | SDK&nbsp;for&nbsp;Extended&nbsp;TypeScript&nbsp;(eTS). |
| SDK&nbsp;Tool | Toolchains | Includes&nbsp;compiling,&nbsp;packaging,&nbsp;signing,&nbsp;database&nbsp;management,&nbsp;and&nbsp;other&nbsp;tools&nbsp;that&nbsp;are&nbsp;required&nbsp;to&nbsp;develop&nbsp;OpenHarmony&nbsp;apps. |
| Previewer | OpenHarmony&nbsp;app&nbsp;previewer,&nbsp;which&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;view&nbsp;the&nbsp;UI&nbsp;layout&nbsp;during&nbsp;app&nbsp;development. |
1. Open DevEco Studio. If this is the first time you are using it, select **Do not import settings** and click **OK**.
2. Follow the wizard to set **npm registry**. DevEco Studio has been preconfigured with the corresponding registry. Click **Start using DevEco Studio** to go to the next step.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If the **Set up HTTP Proxy** page is displayed, it indicates that your network requires a proxy. In this case, set up the DevEco Studio proxy, npm proxy, and Gradle proxy according to [References](#references), and then download the OpenHarmony SDK.
![en-us_image_0000001163314102](figures/en-us_image_0000001163314102.png)
3. Follow the wizard to download the SDK. By default, the OpenHarmony SDK will be downloaded. You can download the SDK to the default **user** directory or a local path that does not contain any Chinese characters. Then click **Next**.
![en-us_image_0000001208394019](figures/en-us_image_0000001208394019.png)
<a name="table64565810577"></a>
<table><thead align="left"><tr id="row12455580576"><th class="cellrowborder" valign="top" width="24.709999999999997%" id="mcps1.1.4.1.1"><p id="p34565812572"><a name="p34565812572"></a><a name="p34565812572"></a>Type</p>
</th>
<th class="cellrowborder" valign="top" width="25.3%" id="mcps1.1.4.1.2"><p id="p104675817575"><a name="p104675817575"></a><a name="p104675817575"></a>Package Name</p>
</th>
<th class="cellrowborder" valign="top" width="49.99%" id="mcps1.1.4.1.3"><p id="p194610586574"><a name="p194610586574"></a><a name="p194610586574"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row44334409916"><td class="cellrowborder" rowspan="2" valign="top" width="24.709999999999997%" headers="mcps1.1.4.1.1 "><p id="p88381448125813"><a name="p88381448125813"></a><a name="p88381448125813"></a>SDK</p>
</td>
<td class="cellrowborder" valign="top" width="25.3%" headers="mcps1.1.4.1.2 "><p id="p1946175813574"><a name="p1946175813574"></a><a name="p1946175813574"></a>JS</p>
</td>
<td class="cellrowborder" valign="top" width="49.99%" headers="mcps1.1.4.1.3 "><p id="p54625885713"><a name="p54625885713"></a><a name="p54625885713"></a>SDK for JS.</p>
</td>
</tr>
<tr id="row12199716103617"><td class="cellrowborder" valign="top" headers="mcps1.1.4.1.1 "><p id="p9200131683616"><a name="p9200131683616"></a><a name="p9200131683616"></a>eTS</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.1.4.1.2 "><p id="p523912359172"><a name="p523912359172"></a><a name="p523912359172"></a>SDK for Extended TypeScript (eTS).</p>
</td>
</tr>
<tr id="row14474585576"><td class="cellrowborder" rowspan="2" valign="top" width="24.709999999999997%" headers="mcps1.1.4.1.1 "><p id="p124765819578"><a name="p124765819578"></a><a name="p124765819578"></a>SDK Tool</p>
</td>
<td class="cellrowborder" valign="top" width="25.3%" headers="mcps1.1.4.1.2 "><p id="p1947135818571"><a name="p1947135818571"></a><a name="p1947135818571"></a>Toolchains</p>
</td>
<td class="cellrowborder" valign="top" width="49.99%" headers="mcps1.1.4.1.3 "><p id="p7471158105711"><a name="p7471158105711"></a><a name="p7471158105711"></a>Includes compiling, packaging, signing, database management, and other tools that are required to develop OpenHarmony apps.</p>
</td>
</tr>
<tr id="row337931010"><td class="cellrowborder" valign="top" headers="mcps1.1.4.1.1 "><p id="p193791108"><a name="p193791108"></a><a name="p193791108"></a>Previewer</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.1.4.1.2 "><p id="p1238951018"><a name="p1238951018"></a><a name="p1238951018"></a>OpenHarmony app previewer, which can be used to view the UI layout during app development.</p>
</td>
</tr>
</tbody>
</table>
1. Open DevEco Studio. If this is the first time you are using it, select **Do not import settings** and click **OK**.
2. Follow the wizard to set **npm registry**. DevEco Studio has been preconfigured with the corresponding registry. Click **Start using DevEco Studio** to go to the next step.
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If the **Set up HTTP Proxy** page is displayed, it indicates that your network requires a proxy. In this case, set up the DevEco Studio proxy, npm proxy, and Gradle proxy according to [References](#section0384143616409), and then download the OpenHarmony SDK.
![](figures/en-us_image_0000001163314102.png)
3. Follow the wizard to download the SDK. By default, the OpenHarmony SDK will be downloaded. You can download the SDK to the default **user** directory or a local path that does not contain any Chinese characters. Then click **Next**.
![](figures/en-us_image_0000001208394019.png)
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If you are not using DevEco Studio for the first time, the SDK download page may not be displayed. In this case, go to **Configure** \(or ![](figures/en-us_image_0000001208274069.png)\) \> **Settings** \> **SDK Manager** \> **OpenHarmony SDK** and click **OpenHarmony SDK Location** to download the SDK.
4. On the **Settings Confirmation** page, click **Next**. When the **License Agreement** dialog box appears, click **Accept**.
![](figures/en-us_image_0000001163472654.png)
5. After the OpenHarmony SDK and tools are downloaded, click **Finish** to access the DevEco Studio welcome page.
![](figures/en-us_image_0000001163632602.png)
## References<a name="section0384143616409"></a>
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If you are not using DevEco Studio for the first time, the SDK download page may not be displayed. In this case, go to **Configure** (or ![en-us_image_0000001208274069](figures/en-us_image_0000001208274069.png)) &gt; **Settings** &gt; **SDK Manager** &gt; **OpenHarmony SDK** and click **OpenHarmony SDK Location** to download the SDK.
4. On the **Settings Confirmation** page, click **Next**. When the **License Agreement** dialog box appears, click **Accept**.
![en-us_image_0000001163472654](figures/en-us_image_0000001163472654.png)
5. After the OpenHarmony SDK and tools are downloaded, click **Finish** to access the DevEco Studio welcome page.
![en-us_image_0000001163632602](figures/en-us_image_0000001163632602.png)
Setting up the development environment requires that your network can directly access the Internet.
Generally, only some enterprise networks rather than personal area networks or home networks require a proxy to access the Internet.
## References
If you are using DevEco Studio for the first time and the **Set up HTTP Proxy** page is displayed, it indicates that your network requires a proxy. In this case, set up the DevEco Studio proxy, npm proxy, and Gradle proxy.
Setting up the development environment requires that your network can directly access the Internet.
![](figures/en-us_image_0000001166582138.png)
Generally, only some enterprise networks rather than personal area networks or home networks require a proxy to access the Internet.
### Setting Up the DevEco Studio Proxy<a name="section10129720184214"></a>
If you are using DevEco Studio for the first time and the **Set up HTTP Proxy** page is displayed, it indicates that your network requires a proxy. In this case, set up the DevEco Studio proxy, npm proxy, and Gradle proxy.
1. Start DevEco Studio. On the **Set up HTTP Proxy** page that is displayed, select **Manual proxy configuration** and set the HTTP proxy.
![en-us_image_0000001166582138](figures/en-us_image_0000001166582138.png)
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If this is not the first time you are using DevEco Studio:
>- On the welcome page, choose **Configure** \(or ![](figures/en-us_image_0000001212142015.png)\)** \> Settings \> Appearance & Behavior \> System Settings \> HTTP Proxy** to access the HTTP Proxy settings. \(For macOS, choose **Configure \> Preferences \> Appearance & Behavior \> System Settings \> HTTP Proxy**.\)
>- When on a project page, choose **File \> Settings \> Appearance & Behavior \> System Settings \> HTTP Proxy** to access the HTTP Proxy settings. \(For macOS, choose **DevEco Studio \> Preferences \> Appearance & Behavior \> System Settings \> HTTP Proxy**.\)
- **HTTP** parameters: **If you are not sure about the information, contact your network administrator.**
- **Host name**: Enter the host name or IP address of the proxy server.
- **Port number**: Enter the port number of the proxy server.
- **No proxy for**: Enter the URLs or IP addresses which the PC can directly connect to without a proxy server. Use commas \(,\) to separate URLs and IP addresses.
### Setting Up the DevEco Studio Proxy
- **Proxy authentication** parameters: Set the parameters only when the proxy server requires authentication.
- **Login**: Enter the user name used to access the proxy server.
- **Password**: Enter the password used to access the proxy server.
- **Remember**: Select this option to remember the password.
1. Start DevEco Studio. On the **Set up HTTP Proxy** page that is displayed, select **Manual proxy configuration** and set the HTTP proxy.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If this is not the first time you are using DevEco Studio:
>
> - On the welcome page, choose **Configure** (or ![en-us_image_0000001212142015](figures/en-us_image_0000001212142015.png))** &gt; Settings &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy** to access the HTTP Proxy settings. (For macOS, choose **Configure &gt; Preferences &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy**.)
>
> - When on a project page, choose **File &gt; Settings &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy** to access the HTTP Proxy settings. (For macOS, choose **DevEco Studio &gt; Preferences &gt; Appearance &amp; Behavior &gt; System Settings &gt; HTTP Proxy**.)
![](figures/en-us_image_0000001212062065.png)
- **HTTP** parameters: **If you are not sure about the information, contact your network administrator.**
- **Host name**: Enter the host name or IP address of the proxy server.
- **Port number**: Enter the port number of the proxy server.
- **No proxy for**: Enter the URLs or IP addresses which the PC can directly connect to without a proxy server. Use commas (,) to separate URLs and IP addresses.
- **Proxy authentication** parameters: Set the parameters only when the proxy server requires authentication.
- **Login**: Enter the user name used to access the proxy server.
- **Password**: Enter the password used to access the proxy server.
- **Remember**: Select this option to remember the password.
2. When you have finished, click **Check connection** and enter a URL to check the network connectivity. If the message "Connection successful" is displayed, it indicates that the proxy was set up successfully.
3. Click **Next: Configure npm** to set up the npm proxy. For details, see [Setting Up the npm Proxy](#section19984059114316).
![en-us_image_0000001212062065](figures/en-us_image_0000001212062065.png)
### Setting Up the npm Proxy<a name="section19984059114316"></a>
2. When you have finished, click **Check connection** and enter a URL to check the network connectivity. If the message "Connection successful" is displayed, it indicates that the proxy was set up successfully.
Follow the configuration wizard of DevEco Studio to configure the npm proxy information, which will be written into the **.npmrc** file in the **users/**_user name_ directory.
3. Click **Next: Configure npm** to set up the npm proxy. For details, see [Setting Up the npm Proxy](#setting-up-the-npm-proxy).
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>The configuration wizard is displayed only the first time you install DevEco Studio. If the wizard is not displayed, manually add the proxy information to the **.npmrc** file in the **users/**_user name_ directory.
- **npm registry**: Set the address of the npm registry. You are advised to select this option.
- **HTTP proxy**: Proxy server information. By default, the value is the same as that of **HTTP proxy** of DevEco Studio.
- **Enable Https Proxy**: Indicates whether to configure HTTPS proxy. You are advised to select this option.
### Setting Up the npm Proxy
![](figures/en-us_image_0000001164577336.png)
Follow the configuration wizard of DevEco Studio to configure the npm proxy information, which will be written into the **.npmrc** file in the **users/**_user name_ directory.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> The configuration wizard is displayed only the first time you install DevEco Studio. If the wizard is not displayed, manually add the proxy information to the **.npmrc** file in the **users/**_user name_ directory.
Click **Start using DevEco Studio**.
- **npm registry**: Set the address of the npm registry. You are advised to select this option.
If your proxy server requires the user name and password for authentication, set the user name and password as follows. If your proxy server does not require authentication, skip this step and follow the instructions in [Configuring the SDK Information](#section1265592425017).
- **HTTP proxy**: Proxy server information. By default, the value is the same as that of **HTTP proxy** of DevEco Studio.
![](figures/en-us_image_0000001209817299.png)
- **Enable Https Proxy**: Indicates whether to configure HTTPS proxy. You are advised to select this option.
1. Go to the **Users** directory and open the **.npmrc** file.
2. Modify the npm proxy information. Add the **user** and **password** fields to **proxy** and **https-proxy**. Note that the values may vary depending on the proxy. The following is an example:
![en-us_image_0000001164577336](figures/en-us_image_0000001164577336.png)
```
proxy=http://user:password@proxy.server.com:80
https-proxy=http://user:password@proxy.server.com:80
```
Click **Start using DevEco Studio**.
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If the password contains special characters, such as @, \#, and \*, the configuration may not take effect. You are advised to replace the special characters with ASCII codes and add "%" before the ASCII codes. Refer to the following for the mapping between common symbols and ASCII codes.
>- !: %21
>- @: %40
>- \#: %23
>- ¥: %24
>- &: %26
>- \*: %2A
If your proxy server requires the user name and password for authentication, set the user name and password as follows. If your proxy server does not require authentication, skip this step and follow the instructions in [Configuring the SDK Information](#configuring-the-sdk-information).
3. After the proxy is configured, open the CLI and run the following command to check whether the network is normal.
![en-us_image_0000001209817299](figures/en-us_image_0000001209817299.png)
```
npm info express
```
1. Go to the **Users** directory and open the **.npmrc** file.
If the following information is displayed after running the command, it indicates that the proxy has been set up successfully.
2. Modify the npm proxy information. Add the **user** and **password** fields to **proxy** and **https-proxy**. Note that the values may vary depending on the proxy. The following is an example:
```
proxy=http://user:password@proxy.server.com:80
https-proxy=http://user:password@proxy.server.com:80
```
![](figures/en-us_image_0000001164417356.png)
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If the password contains special characters, such as \@, \#, and \*, the configuration may not take effect. You are advised to replace the special characters with ASCII codes and add "%" before the ASCII codes. Refer to the following for the mapping between common symbols and ASCII codes.
>
> - !: %21
>
> - \@: %40
>
> - \#: %23
>
> - ¥: %24
>
> - &amp;: %26
>
> - \*: %2A
4. When you are done, follow the instructions in [Configuring the SDK Information](#section1265592425017).
3. After the proxy is configured, open the CLI and run the following command to check whether the network is normal.
```
npm info express
```
### Setting Up the Gradle Proxy<a name="section164211820465"></a>
If the following information is displayed after running the command, it indicates that the proxy has been set up successfully.
1. Open **This PC**, and enter **%userprofile%** in the address box to access the user profile. \(For macOS, choose **Go** \> **Home**.\)
![en-us_image_0000001164417356](figures/en-us_image_0000001164417356.png)
![](figures/en-us_image_0000001166740700.png)
4. When you are done, follow the instructions in [Configuring the SDK Information](#configuring-the-sdk-information).
2. Create a **.gradle** folder if there is none.
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>Before creating a **.gradle** folder in macOS, set the system to show hidden files.
### Setting Up the Gradle Proxy
3. Open the **.gradle** folder, create a **gradle** file, and change the file name extension to .properties.
4. Add the following script to the **gradle.properties** file and save the file:
1. Open **This PC**, and enter **%userprofile%** in the address box to access the user profile. (For macOS, choose **Go** &gt; **Home**.)
![en-us_image_0000001166740700](figures/en-us_image_0000001166740700.png)
Modify the host name, port number, user name, password, and proxy exceptions \(**nonProxyHosts**\) based on the actual condition. Separate values for **nonProxyHosts** with a vertical bar \(|\).
2. Create a **.gradle** folder if there is none.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> Before creating a **.gradle** folder in macOS, set the system to show hidden files.
```
systemProp.http.proxyHost=proxy.server.com
systemProp.http.proxyPort=8080
systemProp.http.nonProxyHosts=*.company.com|10.*|100.*
systemProp.http.proxyUser=userId
systemProp.http.proxyPassword=password
systemProp.https.proxyHost=proxy.server.com
systemProp.https.proxyPort=8080
systemProp.https.nonProxyHosts=*.company.com|10.*|100.*
systemProp.https.proxyUser=userId
systemProp.https.proxyPassword=password
```
3. Open the **.gradle** folder, create a “gradle“ file, and change the file name extension to .properties.
4. Add the following script to the “gradle.properties“ file and save the file:
Modify the host name, port number, user name, password, and proxy exceptions (nonProxyHosts) based on the actual condition. Separate values for nonProxyHosts with a vertical bar (|).
```
systemProp.http.proxyHost=proxy.server.com
systemProp.http.proxyPort=8080
systemProp.http.nonProxyHosts=*.company.com|10.*|100.*
systemProp.http.proxyUser=userId
systemProp.http.proxyPassword=password
systemProp.https.proxyHost=proxy.server.com
systemProp.https.proxyPort=8080
systemProp.https.nonProxyHosts=*.company.com|10.*|100.*
systemProp.https.proxyUser=userId
systemProp.https.proxyPassword=password
```
# Creating an OpenHarmony Project
# Creating an OpenHarmony Project<a name="EN-US_TOPIC_0000001130929834"></a>
- **[Using the Project Wizard to Create a Project](use-wizard-to-create-project.md)**
- **[Importing a Sample to Create a Project](import-sample-to-create-project.md)**
- **[Using the Project Wizard to Create a Project](use-wizard-to-create-project.md)**
- **[Importing a Sample to Create a Project](import-sample-to-create-project.md)**
\ No newline at end of file
# Overview
# Overview<a name="EN-US_TOPIC_0000001116414108"></a>
- [About the Document](#About-the-Document)
- [Restrictions](#Restrictions)
- [DevEco Studio Evolution Roadmap](#DevEco-Studio-Evolution-Roadmap)
- [About the Document](#section189422248491)
- [Restrictions](#section65191625782)
- [DevEco Studio Evolution Roadmap](#section187875207166)
## About the Document
## About the Document<a name="section189422248491"></a>
DevEco Studio is an integrated development environment (IDE) of HarmonyOS apps. As HarmonyOS is developed based on OpenHarmony, DevEco Studio can also be used to develop OpenHarmony apps.
DevEco Studio is an integrated development environment \(IDE\) of HarmonyOS apps. As HarmonyOS is developed based on OpenHarmony, DevEco Studio can also be used to develop OpenHarmony apps.
The process of developing an OpenHarmony app using DevEco Studio is the same as that of developing a HarmonyOS app. This document describes the differences between OpenHarmony and HarmonyOS app development.
- **Environment setup**: You need to manually install the OpenHarmony SDK for the OpenHarmony app development. For details, see [Configuring the OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md).
- **Environment setup**: You need to manually install the OpenHarmony SDK for the OpenHarmony app development. For details, see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md).
- **Creating an OpenHarmony project**: Create a project by using the project wizard or by importing a sample project. For details, see [Using the Project Wizard to Create a Project](use-wizard-to-create-project.md).
- **Signature configuration for debugging**: To run an OpenHarmony app on a real device, you need to sign the app first. For instructions, see [Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md).
- **App running on a real device**: Push the OpenHarmony HAP package to the real device for installation. For details, see [Installing and Running Your OpenHarmony App](installing-openharmony-app.md).
- **Creating an OpenHarmony project**: Create a project by using the project wizard or by importing a sample project. For details, see [Using the Project Wizard to Create a Project](../quick-start/use-wizard-to-create-project.md).
For details about how to use DevEco Studio, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387).
- **Signature configuration for debugging**: To run an OpenHarmony app on a real device, you need to sign the app first. For instructions, see [Configuring the OpenHarmony App Signature](../quick-start/configuring-openharmony-app-signature.md).
## Restrictions<a name="section65191625782"></a>
- **App running on a real device**: Push the OpenHarmony HAP package to the real device for installation. For details, see [Installing and Running Your OpenHarmony App](../quick-start/installing-openharmony-app.md).
For details about how to use DevEco Studio, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387).
## Restrictions
- OpenHarmony supports only app development in eTS and JS.
- Developing OpenHarmony apps in DevEco Studio is supported on Windows.
- OpenHarmony supports only app development in eTS and JS.
- Developing OpenHarmony apps in DevEco Studio is supported on Windows.
DevEco Studio serves as a development tool for both OpenHarmony and HarmonyOS apps. Refer to the following table for descriptions about the functions not supported for OpenHarmony.
| Feature | HarmonyOS | OpenHarmony |
| -------- | -------- | -------- |
| Service&nbsp;widgets | **√** | **X** |
| Automatic&nbsp;signing | **√** | **X** |
| Remote&nbsp;emulator | **√** | **X** |
| Local&nbsp;emulator | **√** | **X** |
| Using&nbsp;DevEco&nbsp;Studio&nbsp;for&nbsp;log&nbsp;viewing&nbsp;and&nbsp;optimization | **√** | **X** |
| Cloud&nbsp;testing | **√** | **X** |
| Security&nbsp;testing | **√** | **X** |
## DevEco Studio Evolution Roadmap
<a name="table852516933419"></a>
<table><thead align="left"><tr id="row1952618913415"><th class="cellrowborder" valign="top" width="29.882988298829883%" id="mcps1.1.4.1.1"><p id="p165268963418"><a name="p165268963418"></a><a name="p165268963418"></a>Feature</p>
</th>
<th class="cellrowborder" valign="top" width="36.783678367836785%" id="mcps1.1.4.1.2"><p id="p25262914349"><a name="p25262914349"></a><a name="p25262914349"></a>HarmonyOS</p>
</th>
<th class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.1.4.1.3"><p id="p125265912343"><a name="p125265912343"></a><a name="p125265912343"></a>OpenHarmony</p>
</th>
</tr>
</thead>
<tbody><tr id="row955132319355"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p1655172423517"><a name="p1655172423517"></a><a name="p1655172423517"></a>Service widgets</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p1555192493516"><a name="p1555192493516"></a><a name="p1555192493516"></a><strong id="b11551102403511"><a name="b11551102403511"></a><a name="b11551102403511"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p85511324183514"><a name="p85511324183514"></a><a name="p85511324183514"></a><strong id="b255116244356"><a name="b255116244356"></a><a name="b255116244356"></a>X</strong></p>
</td>
</tr>
<tr id="row1552619933411"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p11430122863614"><a name="p11430122863614"></a><a name="p11430122863614"></a>Automatic signing</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p243122863614"><a name="p243122863614"></a><a name="p243122863614"></a><strong id="b14431122873617"><a name="b14431122873617"></a><a name="b14431122873617"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p4431162819362"><a name="p4431162819362"></a><a name="p4431162819362"></a><strong id="b4431328163619"><a name="b4431328163619"></a><a name="b4431328163619"></a>X</strong></p>
</td>
</tr>
<tr id="row115263913344"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p1323118352362"><a name="p1323118352362"></a><a name="p1323118352362"></a>Remote emulator</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p723143573614"><a name="p723143573614"></a><a name="p723143573614"></a><strong id="b8231173533613"><a name="b8231173533613"></a><a name="b8231173533613"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p7231435143619"><a name="p7231435143619"></a><a name="p7231435143619"></a><strong id="b1523111352363"><a name="b1523111352363"></a><a name="b1523111352363"></a>X</strong></p>
</td>
</tr>
<tr id="row183441037105115"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p5345237155119"><a name="p5345237155119"></a><a name="p5345237155119"></a>Local emulator</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p393214320517"><a name="p393214320517"></a><a name="p393214320517"></a><strong id="b1693264315118"><a name="b1693264315118"></a><a name="b1693264315118"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p139324438515"><a name="p139324438515"></a><a name="p139324438515"></a><strong id="b169321543175116"><a name="b169321543175116"></a><a name="b169321543175116"></a>X</strong></p>
</td>
</tr>
<tr id="row15269933419"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p152318351369"><a name="p152318351369"></a><a name="p152318351369"></a>Using DevEco Studio for log viewing and optimization</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p623118353360"><a name="p623118353360"></a><a name="p623118353360"></a><strong id="b10231535143615"><a name="b10231535143615"></a><a name="b10231535143615"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p192313353367"><a name="p192313353367"></a><a name="p192313353367"></a><strong id="b1423123514368"><a name="b1423123514368"></a><a name="b1423123514368"></a>X</strong></p>
</td>
</tr>
<tr id="row7357734143617"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p76694468363"><a name="p76694468363"></a><a name="p76694468363"></a>Cloud testing</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p2066918465369"><a name="p2066918465369"></a><a name="p2066918465369"></a><strong id="b3669546133610"><a name="b3669546133610"></a><a name="b3669546133610"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1266910467363"><a name="p1266910467363"></a><a name="p1266910467363"></a><strong id="b11669144693616"><a name="b11669144693616"></a><a name="b11669144693616"></a>X</strong></p>
</td>
</tr>
<tr id="row124331939191517"><td class="cellrowborder" valign="top" width="29.882988298829883%" headers="mcps1.1.4.1.1 "><p id="p146691546143619"><a name="p146691546143619"></a><a name="p146691546143619"></a>Security testing</p>
</td>
<td class="cellrowborder" valign="top" width="36.783678367836785%" headers="mcps1.1.4.1.2 "><p id="p614815145371"><a name="p614815145371"></a><a name="p614815145371"></a><strong id="b101485149375"><a name="b101485149375"></a><a name="b101485149375"></a></strong></p>
</td>
<td class="cellrowborder" valign="top" width="33.33333333333333%" headers="mcps1.1.4.1.3 "><p id="p1514811149374"><a name="p1514811149374"></a><a name="p1514811149374"></a><strong id="b01481614133717"><a name="b01481614133717"></a><a name="b01481614133717"></a>X</strong></p>
</td>
</tr>
</tbody>
</table>
## DevEco Studio Evolution Roadmap<a name="section187875207166"></a>
Refer to the following figure for when the HUAWEI DevEco Studio support for OpenHarmony app development is available in different phases.
![en-us_image_0000001210018359](figures/en-us_image_0000001210018359.png)
![](figures/en-us_image_0000001210018359.png)
# Version Change History
# Version Change History<a name="EN-US_TOPIC_0000001210143219"></a>
- [V3.0 Beta2 (2021-12-31)](#V30-Beta2-2021-12-31)
- [Version Compatibility](#Version-Compatibility)
- [Version Change History](#Version-Change-History)
- [V3.0 Beta1 (2021-09-29)](#V30-Beta1-2021-09-29)
- [V3.0 Beta2 \(2021-12-31\)](#section18825185716537)
- [Version Compatibility](#section8155205312218)
- [Version Change History](#section1655415918226)
## V3.0 Beta2 (2021-12-31)
- [V3.0 Beta1 \(2021-09-29\)](#section21092033115018)
## V3.0 Beta2 \(2021-12-31\)<a name="section18825185716537"></a>
### Version Compatibility
### Version Compatibility<a name="section8155205312218"></a>
DevEco Studio 3.0 Beta2 is compatible with the module versions listed below.
| Module | Version | Description |
| -------- | -------- | -------- |
| Gradle | 7.3&nbsp;(7.2&nbsp;at&nbsp;minimum) | DevEco&nbsp;Studio&nbsp;has&nbsp;Gradle&nbsp;7.3&nbsp;preinstalled.&nbsp;No&nbsp;separate&nbsp;installation&nbsp;is&nbsp;required. |
| JDK | 11.0.x | DevEco&nbsp;Studio&nbsp;has&nbsp;JDK&nbsp;11&nbsp;preinstalled.&nbsp;No&nbsp;separate&nbsp;installation&nbsp;is&nbsp;required. |
| OpenHarmony&nbsp;SDK | 3.1.0.0&nbsp;(API&nbsp;Version&nbsp;8&nbsp;Beta) | This&nbsp;version&nbsp;is&nbsp;compatible&nbsp;with&nbsp;SDKs&nbsp;of&nbsp;earlier&nbsp;versions. |
| Toolchinas | 3.1.0.0 | Update&nbsp;them&nbsp;to&nbsp;the&nbsp;latest&nbsp;version. |
| hap&nbsp;plug-in | 3.0.5.2 |
| decctest&nbsp;plug-in | 1.2.7.2 |
<a name="table912419211138"></a>
<table><thead align="left"><tr id="row141241921231"><th class="cellrowborder" valign="top" width="31.009999999999998%" id="mcps1.1.4.1.1"><p id="p1112432111316"><a name="p1112432111316"></a><a name="p1112432111316"></a>Module</p>
</th>
<th class="cellrowborder" valign="top" width="36.02%" id="mcps1.1.4.1.2"><p id="p111241921039"><a name="p111241921039"></a><a name="p111241921039"></a>Version</p>
</th>
<th class="cellrowborder" valign="top" width="32.97%" id="mcps1.1.4.1.3"><p id="p863410439478"><a name="p863410439478"></a><a name="p863410439478"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row14124221933"><td class="cellrowborder" valign="top" width="31.009999999999998%" headers="mcps1.1.4.1.1 "><p id="p17124172110319"><a name="p17124172110319"></a><a name="p17124172110319"></a>Gradle</p>
</td>
<td class="cellrowborder" valign="top" width="36.02%" headers="mcps1.1.4.1.2 "><p id="p101251821838"><a name="p101251821838"></a><a name="p101251821838"></a>7.3 (7.2 at minimum)</p>
</td>
<td class="cellrowborder" valign="top" width="32.97%" headers="mcps1.1.4.1.3 "><p id="p0634643124719"><a name="p0634643124719"></a><a name="p0634643124719"></a>DevEco Studio has Gradle 7.3 preinstalled. No separate installation is required.</p>
</td>
</tr>
<tr id="row1125172118320"><td class="cellrowborder" valign="top" width="31.009999999999998%" headers="mcps1.1.4.1.1 "><p id="p358213219512"><a name="p358213219512"></a><a name="p358213219512"></a>JDK</p>
</td>
<td class="cellrowborder" valign="top" width="36.02%" headers="mcps1.1.4.1.2 "><p id="p1412552119316"><a name="p1412552119316"></a><a name="p1412552119316"></a>11.0.x</p>
</td>
<td class="cellrowborder" valign="top" width="32.97%" headers="mcps1.1.4.1.3 "><p id="p76347438478"><a name="p76347438478"></a><a name="p76347438478"></a>DevEco Studio has JDK 11 preinstalled. No separate installation is required.</p>
</td>
</tr>
<tr id="row712518211231"><td class="cellrowborder" valign="top" width="31.009999999999998%" headers="mcps1.1.4.1.1 "><p id="p61257211232"><a name="p61257211232"></a><a name="p61257211232"></a>OpenHarmony SDK</p>
</td>
<td class="cellrowborder" valign="top" width="36.02%" headers="mcps1.1.4.1.2 "><p id="p141258211631"><a name="p141258211631"></a><a name="p141258211631"></a>3.1.0.0 (API Version 8 Beta)</p>
</td>
<td class="cellrowborder" valign="top" width="32.97%" headers="mcps1.1.4.1.3 "><p id="p363464312479"><a name="p363464312479"></a><a name="p363464312479"></a>This version is compatible with SDKs of earlier versions.</p>
</td>
</tr>
<tr id="row148771316264"><td class="cellrowborder" valign="top" width="31.009999999999998%" headers="mcps1.1.4.1.1 "><p id="p16276131516263"><a name="p16276131516263"></a><a name="p16276131516263"></a>Toolchinas</p>
</td>
<td class="cellrowborder" valign="top" width="36.02%" headers="mcps1.1.4.1.2 "><p id="p887713152611"><a name="p887713152611"></a><a name="p887713152611"></a>3.1.0.0</p>
</td>
<td class="cellrowborder" rowspan="3" valign="top" width="32.97%" headers="mcps1.1.4.1.3 "><p id="p14933418194918"><a name="p14933418194918"></a><a name="p14933418194918"></a>Update them to the latest version.</p>
</td>
</tr>
<tr id="row1792520182520"><td class="cellrowborder" valign="top" headers="mcps1.1.4.1.1 "><p id="p109251518258"><a name="p109251518258"></a><a name="p109251518258"></a>hap plug-in</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.1.4.1.2 "><p id="p14925111817513"><a name="p14925111817513"></a><a name="p14925111817513"></a>3.0.5.2</p>
</td>
</tr>
<tr id="row29251718254"><td class="cellrowborder" valign="top" headers="mcps1.1.4.1.1 "><p id="p109255186518"><a name="p109255186518"></a><a name="p109255186518"></a>decctest plug-in</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.1.4.1.2 "><p id="p15925121819513"><a name="p15925121819513"></a><a name="p15925121819513"></a>1.2.7.2</p>
</td>
</tr>
</tbody>
</table>
### Version Change History<a name="section1655415918226"></a>
### Version Change History
<a name="simpletable154972061571"></a>
<table id="simpletable154972061571"><tr id="strow04971366576"><td valign="top" id="stentry164971967578"><p id="p949718615570"><a name="p949718615570"></a><a name="p949718615570"></a><strong id="b3206161751212"><a name="b3206161751212"></a><a name="b3206161751212"></a>New Features</strong></p>
<a name="ul1978261655712"></a><a name="ul1978261655712"></a><ul id="ul1978261655712"><li>Introduced the Chinese UI. By default, the UI is displayed in English. To enable the Chinese UI, go to <strong id="b121121320121217"><a name="b121121320121217"></a><a name="b121121320121217"></a>Settings</strong>, choose <strong id="b7112102015129"><a name="b7112102015129"></a><a name="b7112102015129"></a>Plugins</strong> &gt; <strong id="b5112152017128"><a name="b5112152017128"></a><a name="b5112152017128"></a>installed</strong>, and select <strong id="b9113182071210"><a name="b9113182071210"></a><a name="b9113182071210"></a>Chinese (Simplified)</strong>. Then, restart DevEco Studio for the settings to take effect.</li><li>Introduced support for OpenHarmony apps and services, with various debugging features, from breakpoint management and variable observation to stepping.</li></ul>
<p id="p49051145125817"><a name="p49051145125817"></a><a name="p49051145125817"></a></p>
<p id="p7511347135817"><a name="p7511347135817"></a><a name="p7511347135817"></a><strong id="b6867529171215"><a name="b6867529171215"></a><a name="b6867529171215"></a>Enhanced Features</strong></p>
<a name="ul311913348114"></a><a name="ul311913348114"></a><ul id="ul311913348114"><li>Updated the OpenHarmony SDK to 3.1.0.0, whose API version is API 8 Beta and corresponding compilation and building plugin is 3.0.5.2.</li><li>Added an ability template that supports low-code development: <strong id="b736929122019"><a name="b736929122019"></a><a name="b736929122019"></a>[Standard]Empty Ability</strong>.</li><li>Added eTS component preview: allows previewing of eTS components; requires compileSdkVersion 8 or later.</li><li>Added eTS livee preview: allows viewing of the attribute changes in real time as you make them; requires compileSdkVersion 8 or later.</li></ul>
</td>
</tr>
</table>
| |
| -------- |
| **New&nbsp;Features**<br/>-&nbsp;Introduced&nbsp;the&nbsp;Chinese&nbsp;UI.&nbsp;By&nbsp;default,&nbsp;the&nbsp;UI&nbsp;is&nbsp;displayed&nbsp;in&nbsp;English.&nbsp;To&nbsp;enable&nbsp;the&nbsp;Chinese&nbsp;UI,&nbsp;go&nbsp;to&nbsp;**Settings**,&nbsp;choose&nbsp;**Plugins**&nbsp;&gt;&nbsp;**installed**,&nbsp;and&nbsp;select&nbsp;**Chinese&nbsp;(Simplified)**.&nbsp;Then,&nbsp;restart&nbsp;DevEco&nbsp;Studio&nbsp;for&nbsp;the&nbsp;settings&nbsp;to&nbsp;take&nbsp;effect.<br/>-&nbsp;Introduced&nbsp;support&nbsp;for&nbsp;OpenHarmony&nbsp;apps&nbsp;and&nbsp;services,&nbsp;with&nbsp;various&nbsp;debugging&nbsp;features,&nbsp;from&nbsp;breakpoint&nbsp;management&nbsp;and&nbsp;variable&nbsp;observation&nbsp;to&nbsp;stepping.<br/>**Enhanced&nbsp;Features**<br/>-&nbsp;Updated&nbsp;the&nbsp;OpenHarmony&nbsp;SDK&nbsp;to&nbsp;3.1.0.0,&nbsp;whose&nbsp;API&nbsp;version&nbsp;is&nbsp;API&nbsp;8&nbsp;Beta&nbsp;and&nbsp;corresponding&nbsp;compilation&nbsp;and&nbsp;building&nbsp;plugin&nbsp;is&nbsp;3.0.5.2.<br/>-&nbsp;Added&nbsp;an&nbsp;ability&nbsp;template&nbsp;that&nbsp;supports&nbsp;low-code&nbsp;development:&nbsp;**[Standard]Empty&nbsp;Ability**.<br/>-&nbsp;Added&nbsp;eTS&nbsp;component&nbsp;preview:&nbsp;allows&nbsp;previewing&nbsp;of&nbsp;eTS&nbsp;components;&nbsp;requires&nbsp;compileSdkVersion&nbsp;8&nbsp;or&nbsp;later.<br/>-&nbsp;Added&nbsp;eTS&nbsp;livee&nbsp;preview:&nbsp;allows&nbsp;viewing&nbsp;of&nbsp;the&nbsp;attribute&nbsp;changes&nbsp;in&nbsp;real&nbsp;time&nbsp;as&nbsp;you&nbsp;make&nbsp;them;&nbsp;requires&nbsp;compileSdkVersion&nbsp;8&nbsp;or&nbsp;later. |
## V3.0 Beta1 \(2021-09-29\)<a name="section21092033115018"></a>
<a name="simpletable19435134375015"></a>
<table id="simpletable19435134375015"><tr id="strow1435543185020"><td valign="top" id="stentry64351943115013"><div class="p" id="p13974162220455"><a name="p13974162220455"></a><a name="p13974162220455"></a><strong id="b0838112318282"><a name="b0838112318282"></a><a name="b0838112318282"></a>New Features</strong><a name="ul11381034104515"></a><a name="ul11381034104515"></a><ul id="ul11381034104515"><li>Added support for OpenHarmony SDK management. You can use SDK Manager to download and manage OpenHarmony SDKs.</li><li>Allowed for building of a single module during HAP compilation and building to accelerate building for multi-module projects; allowed for one-click re-building of HAPs, by automatically conducting the Clean Project operation before a HAP build.</li></ul>
</div>
<div class="p" id="p556811306614"><a name="p556811306614"></a><a name="p556811306614"></a><strong id="b0183135142820"><a name="b0183135142820"></a><a name="b0183135142820"></a>Enhanced Features</strong><a name="ul834518400613"></a><a name="ul834518400613"></a><ul id="ul834518400613"><li>Updated the compilation and building plugin to version 3.0.3.2.</li><li>Improved the JSON editor, which now enables quick rectification of resource index errors and instant access to resource values.</li><li>Provided Ohos and Project (default) views for projects, which you can switch between easily.</li><li>Enabled OpenHarmony projects to support Ark build.</li><li>Moved the <strong id="b19966587296"><a name="b19966587296"></a><a name="b19966587296"></a>supportSystem "standard"</strong> field, which is exclusive to OpenHarmony projects, from the module-level <strong id="b596638162911"><a name="b596638162911"></a><a name="b596638162911"></a>build.gradle</strong> file to the project-level <strong id="b199671680295"><a name="b199671680295"></a><a name="b199671680295"></a>build.gradle</strong> file.</li></ul>
</div>
</td>
</tr>
</table>
## V3.0 Beta1 (2021-09-29)
| |
| -------- |
| **New&nbsp;Features**<br/>-&nbsp;Added&nbsp;support&nbsp;for&nbsp;OpenHarmony&nbsp;SDK&nbsp;management.&nbsp;You&nbsp;can&nbsp;use&nbsp;SDK&nbsp;Manager&nbsp;to&nbsp;download&nbsp;and&nbsp;manage&nbsp;OpenHarmony&nbsp;SDKs.<br/>-&nbsp;Allowed&nbsp;for&nbsp;building&nbsp;of&nbsp;a&nbsp;single&nbsp;module&nbsp;during&nbsp;HAP&nbsp;compilation&nbsp;and&nbsp;building&nbsp;to&nbsp;accelerate&nbsp;building&nbsp;for&nbsp;multi-module&nbsp;projects;&nbsp;allowed&nbsp;for&nbsp;one-click&nbsp;re-building&nbsp;of&nbsp;HAPs,&nbsp;by&nbsp;automatically&nbsp;conducting&nbsp;the&nbsp;Clean&nbsp;Project&nbsp;operation&nbsp;before&nbsp;a&nbsp;HAP&nbsp;build.<br/>**Enhanced&nbsp;Features**<br/>-&nbsp;Updated&nbsp;the&nbsp;compilation&nbsp;and&nbsp;building&nbsp;plugin&nbsp;to&nbsp;version&nbsp;3.0.3.2.<br/>-&nbsp;Improved&nbsp;the&nbsp;JSON&nbsp;editor,&nbsp;which&nbsp;now&nbsp;enables&nbsp;quick&nbsp;rectification&nbsp;of&nbsp;resource&nbsp;index&nbsp;errors&nbsp;and&nbsp;instant&nbsp;access&nbsp;to&nbsp;resource&nbsp;values.<br/>-&nbsp;Provided&nbsp;Ohos&nbsp;and&nbsp;Project&nbsp;(default)&nbsp;views&nbsp;for&nbsp;projects,&nbsp;which&nbsp;you&nbsp;can&nbsp;switch&nbsp;between&nbsp;easily.<br/>-&nbsp;Enabled&nbsp;OpenHarmony&nbsp;projects&nbsp;to&nbsp;support&nbsp;Ark&nbsp;build.<br/>-&nbsp;Moved&nbsp;the&nbsp;**supportSystem&nbsp;"standard"**&nbsp;field,&nbsp;which&nbsp;is&nbsp;exclusive&nbsp;to&nbsp;OpenHarmony&nbsp;projects,&nbsp;from&nbsp;the&nbsp;module-level&nbsp;**build.gradle**&nbsp;file&nbsp;to&nbsp;the&nbsp;project-level&nbsp;**build.gradle**&nbsp;file. |
# DevEco Studio (OpenHarmony) User Guide
# DevEco Studio \(OpenHarmony\) User Guide<a name="EN-US_TOPIC_0000001163049851"></a>
- **[Overview](deveco-studio-overview.md)**
- **[Version Change History](deveco-studio-release-notes.md)**
- **[Overview](deveco-studio-overview.md)**
- **[Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md)**
- **[Version Change History](deveco-studio-release-notes.md)**
- **[Creating an OpenHarmony Project](create-openharmony-project.md)**
- **[Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md)**
- **[Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md)**
- **[Creating an OpenHarmony Project](create-openharmony-project.md)**
- **[Installing and Running Your OpenHarmony App](installing-openharmony-app.md)**
- **[Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md)**
- **[Installing and Running Your OpenHarmony App](installing-openharmony-app.md)**
\ No newline at end of file
# Importing a Sample to Create a Project
# Importing a Sample to Create a Project<a name="EN-US_TOPIC_0000001163914943"></a>
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>This feature applies to OpenHarmony projects created using DevEco Studio 2.1 Release or later.
After the OpenHarmony SDK is configured, you can get started to develop your app by **importing a sample project**.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> This feature applies to OpenHarmony projects created using DevEco Studio 2.1 Release or later.
1. On the DevEco Studio welcome page, select **Configure** or click the ![](figures/en-us_image_0000001118018452.png) icon, and choose **Settings** \> **Version Control** \> **Git**. Then click **Test** to check whether the Git tool has been installed.
- If the tool has been installed, import a sample by referring to [2](#li5947194711181).
![](figures/en-us_image_0000001118018088.png)
After the OpenHarmony SDK is configured, you can get started to develop your app by **importing a sample project**.
- If the tool hasn't been installed, click **Download and Install**. DevEco Studio will automatically download and install it. Then import a sample by referring to [2](#li5947194711181).
![](figures/en-us_image_0000001164498191.png)
1. On the DevEco Studio welcome page, select **Configure** or click the ![en-us_image_0000001118018452](figures/en-us_image_0000001118018452.png) icon, and choose **Settings** &gt; **Version Control** &gt; **Git**. Then click **Test** to check whether the Git tool has been installed.
- If the tool has been installed, import a sample by referring to [ERROR:Invalid link:en-us_topic_0000001163914943.xml#xref1062745524418,link:#li5947194711181](#li5947194711181).
![en-us_image_0000001118018088](figures/en-us_image_0000001118018088.png)
- If the tool hasn't been installed, click **Download and Install**. DevEco Studio will automatically download and install it. Then import a sample by referring to [ERROR:Invalid link:en-us_topic_0000001163914943.xml#xref2168151511810,link:#li5947194711181](#li5947194711181).
![en-us_image_0000001164498191](figures/en-us_image_0000001164498191.png)
2. <a name="li5947194711181"></a>On the DevEco Studio welcome page, click **Import Sample** to import a sample project.
2. On the DevEco Studio welcome page, click **Import Sample** to import a sample project.
![en-us_image_0000001208006117](figures/en-us_image_0000001208006117.png)
![](figures/en-us_image_0000001208006117.png)
3. Choose **OpenHarmony Samples** &gt; **common** &gt; **JsHelloWorld** &gt; **Next**.
![en-us_image_0000001152459178](figures/en-us_image_0000001152459178.png)
3. Choose **OpenHarmony Samples** \> **common** \> **JsHelloWorld** \> **Next**.
![](figures/en-us_image_0000001152459178.png)
4. Configure **App Name** and **Project Location** and click **Finish**. Wait until the sample project is imported.
![](figures/en-us_image_0000001207744539.png)
5. When the project is successfully synced, start developing your OpenHarmony app.
![](figures/en-us_image_0000001163915523.png)
4. Configure **App Name** and **Project Location** and click **Finish**. Wait until the sample project is imported.
![en-us_image_0000001207744539](figures/en-us_image_0000001207744539.png)
5. When the project is successfully synced, start developing your OpenHarmony app.
![en-us_image_0000001163915523](figures/en-us_image_0000001163915523.png)
# Installing and Running Your OpenHarmony App
# Installing and Running Your OpenHarmony App<a name="EN-US_TOPIC_0000001115941596"></a>
You can install your OpenHarmony app in either of the following methods:
- DevEco Studio: Connect your device where the app is stored to DevEco Studio, and then click ![](figures/en-us_image_0000001239855207.png) to install the app.
- hdc: Run commands to install the app.
You can install your OpenHarmony app in either of the following methods:
You can manually obtain the hdc tool from the open-source repository. Then, run the tool commands to install an HAP file on the device.
The tool commands are as follows:
- App installation
**install \[-r/-d/-g\] _package_**
- DevEco Studio: Connect your device where the app is stored to DevEco Studio, and then click ![en-us_image_0000001239855207](figures/en-us_image_0000001239855207.png) to install the app.
Example:
- hdc: Run commands to install the app.
You can manually obtain the hdc tool from the open-source repository. Then, run the tool commands to install an HAP file on the device.
```
hdc_std install E:\hwadmin.hap
```
The tool commands are as follows:
- Log capturing
- App installation
**install [-r/-d/-g] _package_**
**hilog**
Example:
Example:
```
hdc_std install E:\hwadmin.hap
```
- Log capturing
**hilog**
```
hdc_std hilog
```
Example:
For details about how to use hdc and the command format, see [hdc\_std Usage Guidelines](https://gitee.com/openharmony/docs/blob/master/en/device-dev/subsystems/oem_subsys_toolchain_hdc_guide.md).
```
hdc_std hilog
```
For details about how to use hdc and the command format, see [hdc_std Usage Guidelines](https://gitee.com/openharmony/docs/blob/master/en/device-dev/subsystems/oem_subsys_toolchain_hdc_guide.md).
# Using the Project Wizard to Create a Project
# Using the Project Wizard to Create a Project<a name="EN-US_TOPIC_0000001176969367"></a>
- [Prerequisites](#Prerequisites)
- [Procedure](#Procedure)
- [Prerequisites](#section13642104391619)
- [Procedure](#section132671712101714)
If you are using DevEco Studio 2.2 Beta1 or later, you can use the project wizard to create a project. If you are using DevEco Studio 2.1 Release, create a project by following instructions in [Importing a Sample to Create a Project](../quick-start/import-sample-to-create-project.md).
If you are using DevEco Studio 2.2 Beta1 or later, you can use the project wizard to create a project. If you are using DevEco Studio 2.1 Release, create a project by following instructions in [Importing a Sample to Create a Project](import-sample-to-create-project.md).
## Prerequisites<a name="section13642104391619"></a>
## Prerequisites
The OpenHarmony SDK has been installed. For details, see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md).
The OpenHarmony SDK has been installed. For details, see [Configuring the OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md).
## Procedure<a name="section132671712101714"></a>
1. Open the project wizard using either of the following methods:
- If no project is open, select **Create Project** on the welcome page.
- If a project is already open, choose **File** \> **New** \> **New Project** on the menu bar.
## Procedure
2. Select the **\[Standard\]Empty Ability** template and click **Next**.
1. Open the project wizard using either of the following methods:
- If no project is open, select **Create Project** on the welcome page.
- If a project is already open, choose **File** &gt; **New** &gt; **New Project** on the menu bar.
![](figures/en-us_image_0000001162463400.png)
2. Select the **[Standard]Empty Ability** template and click **Next**.
![en-us_image_0000001162463400](figures/en-us_image_0000001162463400.png)
3. Click **Next** and configure the project.
- **Project name**: customized project name.
- **Project type**: project type, which can be an [atomic service](https://developer.harmonyos.com/en/docs/documentation/doc-guides/atomic-service-definition-0000001090840664) or an ordinary app that requires download before use.
3. Click **Next** and configure the project.
- **Project name**: customized project name.
- **Project type**: project type, which can be an [atomic service](https://developer.harmonyos.com/en/docs/documentation/doc-guides/atomic-service-definition-0000001090840664) or an ordinary app that requires download before use.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If you're creating an atomic service:
>
> - There is no app icon on the home screen while running or debugging an atomic service. Use the debugging and running functions of DevEco Studio as an alternative.
>
> - Atomic services are installation free. This is done by automatically adding the **installationFree** field to the **config.json** file, with its value set to **true**.
>
> - If the value of the **installationFree** field of the entry module is set to **true**, the value of the **installationFree** field of all the related HAP modules is **true** by default. If the** installationFree field** of the entry module is set to **false**, the **installationFree** field of all the related HAP modules can be set to **true** or **false**.
>
> - When compiling and building an app, make sure that the size of each HAP package does not exceed 10 MB.
- **Bundle name**: bundle name. By default, this name will also be used as your app ID. Your app must have a unique ID to be released. If **Project type** is set to **Atomic service**, the **Bundle name** must end with **.hmservice**.
- **Save location**: local path for storing the project file.
- **Development mode**: development mode. The **Super Visual** option is available if the project template supports low-code development.
- **Language**: supported programming language.
- **Compatible API version**: earliest SDK version compatible with your app.
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> If **compileSdkVersion 7** or later is configured for the OpenHarmony project, the corresponding module will be compiled using ArkCompiler by default. To use a compiler other than ArkCompiler, add the **arkEnable false** field to the **ohos** closure in the module-level **build.gradle** file.
- **Device Type**: device type supported by the project template.
![en-us_image_0000001196050928](figures/en-us_image_0000001196050928.png)
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If you're creating an atomic service:
>- There is no app icon on the home screen while running or debugging an atomic service. Use the debugging and running functions of DevEco Studio as an alternative.
>- Atomic services are installation free. This is done by automatically adding the **installationFree** field to the **config.json** file, with its value set to **true**.
>- If the value of the **installationFree** field of the entry module is set to **true**, the value of the **installationFree** field of all the related HAP modules is **true** by default. If the** installationFree field** of the entry module is set to **false**, the **installationFree** field of all the related HAP modules can be set to **true** or **false**.
>- When compiling and building an app, make sure that the size of each HAP package does not exceed 10 MB.
- **Bundle name**: bundle name. By default, this name will also be used as your app ID. Your app must have a unique ID to be released. If **Project type** is set to **Atomic service**, the **Bundle name** must end with **.hmservice**.
- **Save location**: local path for storing the project file.
- **Development mode**: development mode. The **Super Visual** option is available if the project template supports low-code development.
- **Language**: supported programming language.
- **Compatible API version**: earliest SDK version compatible with your app.
>![](../public_sys-resources/icon-note.gif) **NOTE:**
>If **compileSdkVersion 7** or later is configured for the OpenHarmony project, the corresponding module will be compiled using ArkCompiler by default. To use a compiler other than ArkCompiler, add the **arkEnable false** field to the **ohos** closure in the module-level **build.gradle** file.
- **Device Type**: device type supported by the project template.
![](figures/en-us_image_0000001196050928.png)
4. Click **Finish**. DevEco Studio will automatically generate the sample code and resources that match your project type. Wait until the project is created.
4. Click **Finish**. DevEco Studio will automatically generate the sample code and resources that match your project type. Wait until the project is created.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册