diff --git a/README_zh.md b/README_zh.md index 0cd4535d21f76195ed149836faf9b22c38bd34ef..c50955d1202d5ba0e2f6461841f9c551f2fc7c58 100644 --- a/README_zh.md +++ b/README_zh.md @@ -22,8 +22,10 @@ - OpenHarmony 3.1 Release版本:点击[此处](zh-cn/release-notes/OpenHarmony-v3.1-release.md)了解版本详情。 + 该已更新至OpenHarmony 3.1.1 Release,点击[此处](zh-cn/release-notes/OpenHarmony-v3.1.1-release.md)了解版本详情。 + - OpenHarmony 3.0 LTS版本:点击[此处](zh-cn/release-notes/OpenHarmony-v3.0-LTS.md)了解版本详情。 - + 该版本已更新至OpenHarmony 3.0.3 LTS,点击[此处](zh-cn/release-notes/OpenHarmony-v3.0.3-LTS.md)了解版本详情。 - OpenHarmony 2.2 Beta2版本:点击[此处](zh-cn/release-notes/OpenHarmony-v2.2-beta2.md)了解版本详情。 @@ -47,4 +49,8 @@ OpenHarmony_v1.x_release:OpenHarmony 1.1.4 LTS稳定版本,点击[此处](zh 您可以对现有文档进行评价、简单更改、反馈文档质量问题、贡献您的原创内容,详细请参考[贡献文档](zh-cn/contribute/贡献文档.md)。 -卓越贡献者将会在开发者社区文档贡献专栏表彰公示。 \ No newline at end of file +卓越贡献者将会在开发者社区文档贡献专栏表彰公示。 + +- 邮件列表:docs@openharmony.io + +- Zulip群组:documentation_sig \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-Context.md b/en/application-dev/reference/apis/js-apis-Context.md index 8b2851b629aaa7ef7efaec1f2753bb655dbd1b2f..7e947ddbe0194fabeb31d1c10c44eab0dcfe1550 100644 --- a/en/application-dev/reference/apis/js-apis-Context.md +++ b/en/application-dev/reference/apis/js-apis-Context.md @@ -836,7 +836,7 @@ Obtains information of the current ability. This API uses an asynchronous callba | Name | Type | Mandatory| Description | | -------- | ---------------------- | ---- | ------------------------- | -| callback | AsyncCallback\<[AbilityInfo](#abilityInfo)> | Yes | Callback used to return the ability information.| +| callback | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | Yes | Callback used to return the ability information.| **Example** @@ -864,7 +864,7 @@ Obtains information of the current ability. This API uses a promise to return th | Type | Description | | --------------- | ------------------------- | -| Promise\<[AbilityInfo](#abilityInfo)> | Promise used to return the ability information.| +| Promise\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | Promise used to return the ability information.| **Example** diff --git a/en/application-dev/reference/arkui-ts/ts-container-list.md b/en/application-dev/reference/arkui-ts/ts-container-list.md index 85f1176e154a155ca985a147902d6cc28cc31536..ca85c43cf47556315915f6947fdd62a1d136bf24 100644 --- a/en/application-dev/reference/arkui-ts/ts-container-list.md +++ b/en/application-dev/reference/arkui-ts/ts-container-list.md @@ -20,7 +20,7 @@ This component contains the child component [](ts-container-listitem.m ## APIs -List(value:{space?: number, initialIndex?: number}) +List(value:{space?: number | string, initialIndex?: number, scroller?: Scroller}) - Parameters | Name | Type | Mandatory | Default Value | Description | diff --git a/en/application-dev/reference/arkui-ts/ts-container-refresh.md b/en/application-dev/reference/arkui-ts/ts-container-refresh.md index efd85927fb1a3a500a7f2296d4a5f130eaca3a5a..2392680bc520832629d8763fb9eee5e28b946bf7 100644 --- a/en/application-dev/reference/arkui-ts/ts-container-refresh.md +++ b/en/application-dev/reference/arkui-ts/ts-container-refresh.md @@ -15,7 +15,7 @@ This component supports only one child component. ## APIs -Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number\}\) +Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number | string\}\) - Parameters diff --git a/en/readme/figures/User-IAM-subsystem-architecture.png b/en/readme/figures/User-IAM-subsystem-architecture.png index c7d29351730cf728c38988b803dc01534438e59b..13a861f97107524e38ed06f1e3d153cdc7d55fe2 100644 Binary files a/en/readme/figures/User-IAM-subsystem-architecture.png and b/en/readme/figures/User-IAM-subsystem-architecture.png differ diff --git a/en/readme/user-iam.md b/en/readme/user-iam.md index 60150d52f090ecdc8f27cc8da47b5a6972de9aea..52aba67d9048692ead51f3141090abaeb878ab43 100644 --- a/en/readme/user-iam.md +++ b/en/readme/user-iam.md @@ -23,11 +23,9 @@ Based on the unified user authentication framework, the system can be extended t ```undefined //base/user_iam -├── auth_executor_mgr # Authentication executor management part, which supports unified authentication resource management and scheduling +├── user_auth_framework # User authentication framework, including user authentication, credential management and executor management ├── face_auth # Facial authentication module, which connects to the authentication executor management part and supports facial information recording, deletion, and verification ├── pin_auth # Password authentication module, which connects to the authentication executor management part and supports password recording, deletion, and verification -├── user_auth # Unified user authentication part -└── user_idm # User credential management part ``` @@ -45,12 +43,12 @@ Based on the unified user authentication framework, the system can be extended t ## Repositories Involved -[useriam_auth_executor_mgr](https://gitee.com/openharmony/useriam_auth_executor_mgr) +[useriam_user_auth_framework](https://gitee.com/openharmony/useriam_user_auth_framework) -[useriam_user_idm](https://gitee.com/openharmony/useriam_user_idm) +[useriam_pin_auth](https://gitee.com/openharmony/useriam_pin_auth) -[useriam_user_auth](https://gitee.com/openharmony/useriam_user_auth) +[useriam_face_auth](https://gitee.com/openharmony/useriam_face_auth) -[useriam_pin_auth](https://gitee.com/openharmony/useriam_pin_auth) +[drivers_interface](https://gitee.com/openharmony/drivers_interface) -[useriam_faceauth](https://gitee.com/openharmony/useriam_faceauth) +[drivers_peripheral](https://gitee.com/openharmony/drivers_peripheral) \ No newline at end of file diff --git a/zh-cn/application-dev/ability/fa-dataability.md b/zh-cn/application-dev/ability/fa-dataability.md index d977293ae807537524eebb0aa76c56cfcd031aaf..67dcdd8c71aeaff992259ea64c844249540bcb19 100644 --- a/zh-cn/application-dev/ability/fa-dataability.md +++ b/zh-cn/application-dev/ability/fa-dataability.md @@ -4,6 +4,28 @@ Data提供方可以自定义数据的增、删、改、查,以及文件打开等功能,并对外提供这些接口。 +## URI介绍 + +Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。HarmonyOS的URI仍基于URI通用标准,格式如下: + +![fa-dataability-uri](figures/fa-dataability-uri.png) + +- scheme:协议方案名,固定为“dataability”,代表Data Ability所使用的协议类型。 +- authority:设备ID。如果为跨设备场景,则为目标设备的ID;如果为本地设备场景,则不需要填写。 +- path:资源的路径信息,代表特定资源的位置信息。 +- query:查询参数。 +- fragment:可以用于指示要访问的子资源。 + +URI示例: + +- 跨设备场景:dataability://*device_id*/*com.domainname.dataability.persondata*/*person*/*10* +- 本地设备:dataability:///*com.domainname.dataability.persondata*/*person*/*10* + +``` +说明 +本地设备的“device_id”字段为空,因此在“dataability:”后面有三个“/”。 +``` + ## 接口说明 **表1** Data中相关生命周期API功能介绍 diff --git a/zh-cn/application-dev/ability/figures/fa-dataability-uri.png b/zh-cn/application-dev/ability/figures/fa-dataability-uri.png new file mode 100644 index 0000000000000000000000000000000000000000..140098297414775dfd478500c7304f8856a14dd5 Binary files /dev/null and b/zh-cn/application-dev/ability/figures/fa-dataability-uri.png differ diff --git a/zh-cn/application-dev/ability/stage-ability.md b/zh-cn/application-dev/ability/stage-ability.md index 373d4100cca52b8e91707b4f50446fc86d0528a1..230675ba013b77dc6de93a89b3a2a704f4ab4edf 100644 --- a/zh-cn/application-dev/ability/stage-ability.md +++ b/zh-cn/application-dev/ability/stage-ability.md @@ -8,13 +8,13 @@ Stage模型是区别于FA模型的一种应用开发模型,对此模型的介 - 应用迁移,详见[应用迁移开发指导](stage-ability-continuation.md)。 ### 启动模式 -ability支持单实例、多实例和指定实例3种启动模式,在module.json中通过launchType配置。启动模式对应Ability被启动时的行为,对启动模式的详细说明如下: +Ability支持单实例、多实例和指定实例3种启动模式,在module.json中通过launchType配置。启动模式对应Ability被启动时的行为,对启动模式的详细说明如下: | 启动模式 | 描述 |说明 | | ----------- | ------- |---------------- | | standard | 多实例 | 每次startAbility都会启动一个新的实例 | | singleton | 单实例 | 系统中只存在唯一一个实例,startAbility时,如果已存在,则复用系统中的唯一一个实例 | -| specified | 指定实例 | 运行时由ability内部业务决定是否创建多实例 | +| specified | 指定实例 | 运行时由Ability内部业务决定是否创建多实例 | 缺省情况下是singleton模式,module.json示例如下: ```json @@ -107,7 +107,7 @@ Ability功能如下(Ability类,具体的API详见[接口文档](../reference } ``` ### 获取AbilityStage及Ability的配置信息 -AbilityStage类及Ability类均拥有context属性,应用可以通过`this.context`获取Ability实例的上下文,进而获取详细的配置信息。如下示例展示了AbilityStage通过context属性获取包代码路径、hap包名、ability名以及系统语言的方法。具体示例代码如下: +AbilityStage类及Ability类均拥有context属性,应用可以通过`this.context`获取Ability实例的上下文,进而获取详细的配置信息。如下示例展示了AbilityStage通过context属性获取包代码路径、hap包名、Ability名以及系统语言的方法。具体示例代码如下: ```ts import AbilityStage from "@ohos.application.AbilityStage" export default class MyAbilityStage extends AbilityStage { @@ -126,7 +126,7 @@ export default class MyAbilityStage extends AbilityStage { } ``` -如下示例展示了Ability通过context属性获取包代码路径、hap包名、ability名以及系统语言的方法。具体示例代码如下: +如下示例展示了Ability通过context属性获取包代码路径、hap包名、Ability名以及系统语言的方法。具体示例代码如下: ```ts import Ability from '@ohos.application.Ability' export default class MainAbility extends Ability { diff --git a/zh-cn/application-dev/connectivity/websocket-connection.md b/zh-cn/application-dev/connectivity/websocket-connection.md index a3a335abccb58ae12b21df75d566c83256928ee7..8cd007bf75842aac584aa76cf97c1f986473962e 100644 --- a/zh-cn/application-dev/connectivity/websocket-connection.md +++ b/zh-cn/application-dev/connectivity/websocket-connection.md @@ -3,7 +3,7 @@ ## 场景介绍 -使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket方法创建WebSocket对象,然后通过connect方法连接到服务器。当连接成功后,客户端会收到open事件的回调,之后客户端就可以通过send方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到message事件的回调。当客户端不要此连接时,可以通过调用close方法主动断开连接,之后客户端会收到close事件的回调。 +使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket()方法创建WebSocket对象,然后通过connect()方法连接到服务器。当连接成功后,客户端会收到open事件的回调,之后客户端就可以通过send()方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到message事件的回调。当客户端不要此连接时,可以通过调用close()方法主动断开连接,之后客户端会收到close事件的回调。 若在上述任一过程中发生错误,客户端会收到error事件的回调。 @@ -18,23 +18,23 @@ WebSocket连接功能主要由webSocket模块提供。使用该功能需要申 | connect() | 根据URL地址,建立一个WebSocket连接。 | | send() | 通过WebSocket连接发送数据。 | | close() | 关闭WebSocket连接。 | -| on(type: 'open') | 订阅WebSocket的打开事件。 | -| off(type: 'open') | 取消订阅WebSocket的打开事件。 | -| on(type: 'message') | 订阅WebSocket的接收到服务器消息事件。 | -| off(type: 'message') | 取消订阅WebSocket的接收到服务器消息事件。 | -| on(type: 'close') | 订阅WebSocket的关闭事件。 | -| off(type: 'close') | 取消订阅WebSocket的关闭事件 | -| on(type: 'error') | 订阅WebSocket的Error事件。 | -| off(type: 'error') | 取消订阅WebSocket的Error事件。 | +| on(type: 'open') | 订阅WebSocket的打开事件。 | +| off(type: 'open') | 取消订阅WebSocket的打开事件。 | +| on(type: 'message') | 订阅WebSocket的接收到服务器消息事件。 | +| off(type: 'message') | 取消订阅WebSocket的接收到服务器消息事件。 | +| on(type: 'close') | 订阅WebSocket的关闭事件。 | +| off(type: 'close') | 取消订阅WebSocket的关闭事件 | +| on(type: 'error') | 订阅WebSocket的Error事件。 | +| off(type: 'error') | 取消订阅WebSocket的Error事件。 | ## 开发步骤 -1. import需要的webSocket模块。 +1. 导入需要的webSocket模块。 2. 创建一个WebSocket连接,返回一个WebSocket对象。 -3. (可选)订阅WebSocket的打开、消息、关闭、Error事件。 +3. (可选)订阅WebSocket的打开、消息接收、关闭、Error事件。 4. 根据URL地址,发起WebSocket连接。 @@ -50,9 +50,9 @@ WebSocket连接功能主要由webSocket模块提供。使用该功能需要申 // 当收到on('open')事件时,可以通过send()方法与服务器进行通信 ws.send("Hello, server!", (err, value) => { if (!err) { - console.log("send success"); + console.log("Message sent successfully"); } else { - console.log("send fail, err:" + JSON.stringify(err)); + console.log("Failed to send the message. Err:" + JSON.stringify(err)); } }); }); @@ -62,9 +62,9 @@ WebSocket连接功能主要由webSocket模块提供。使用该功能需要申 if (value === 'bye') { ws.close((err, value) => { if (!err) { - console.log("close success"); + console.log("Connection closed successfully"); } else { - console.log("close fail, err is " + JSON.stringify(err)); + console.log("Failed to close the connection. Err: " + JSON.stringify(err)); } }); } @@ -77,9 +77,9 @@ WebSocket连接功能主要由webSocket模块提供。使用该功能需要申 }); ws.connect(defaultIpAddress, (err, value) => { if (!err) { - console.log("connect success"); + console.log("Connected successfully"); } else { - console.log("connect fail, err:" + JSON.stringify(err)); + console.log("Connection failed. Err:" + JSON.stringify(err)); } }); ``` diff --git a/zh-cn/application-dev/database/database-relational-guidelines.md b/zh-cn/application-dev/database/database-relational-guidelines.md index 001f8eca7a78f71b3ccee9c685799437ad9b9680..add3bf98baa31c184f521122342586e752a8b84b 100644 --- a/zh-cn/application-dev/database/database-relational-guidelines.md +++ b/zh-cn/application-dev/database/database-relational-guidelines.md @@ -70,8 +70,8 @@ | 类名 | 接口名 | 描述 | | -------- | -------- | -------- | - | RdbStore | query(predicates: RdbPredicates, columns: Array, callback: AsyncCallback<ResultSet>): void | 根据指定条件查询数据库中的数据,结果以callback形式返回。
- predicates:表示RdbPredicates的实例对象指定的查询条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。
- callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 | - | RdbStore | query(predicates: RdbPredicates, columns: Array): Promise<ResultSet> | 根据指定条件查询数据库中的数据,结果以Promise形式返回。
- predicates:表示RdbPredicates的实例对象指定的查询条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。 | + | RdbStore | query(predicates: RdbPredicates, columns: Array<string>, callback: AsyncCallback<ResultSet>): void | 根据指定条件查询数据库中的数据,结果以callback形式返回。
- predicates:表示RdbPredicates的实例对象指定的查询条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。
- callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 | + | RdbStore | query(predicates: RdbPredicates, columns?: Array<string>): Promise<ResultSet> | 根据指定条件查询数据库中的数据,结果以Promise形式返回。
- predicates:表示RdbPredicates的实例对象指定的查询条件。
- columns:表示要查询的列。如果值为空,则查询应用于所有列。 | | RdbStore | querySql(sql: string, bindArgs: Array<ValueType>, callback: AsyncCallback<ResultSet>):void | 根据指定SQL语句查询数据库中的数据,结果以callback形式返回。
- sql:指定要查询的SQL语句。
- bindArgs:SQL语句中参数的值。
- callback:指定callback回调函数。如果操作成功,则返回ResultSet对象。 | | RdbStore | querySql(sql: string, bindArgs?: Array<ValueType>):Promise<ResultSet> | 根据指定SQL语句查询数据库中的数据,结果以Promise形式返回。
- sql:指定要查询的SQL语句。
- bindArgs:SQL语句中参数的值。 | diff --git a/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md b/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md index c24e83427a937df698a03fe4966120048c456860..9a43e1571aff77f8223461b3c472fefef2c1d7e8 100644 --- a/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md +++ b/zh-cn/application-dev/device-usage-statistics/device-usage-statistics-dev-guide.md @@ -44,7 +44,7 @@ import stats from '@ohos.bundleState'; ..., "reqPermissions": [ { - "name": "ohos.permission.BUNDLE_ACTIVE_INFO" + "name": "ohos.permission.BUNDLE_ACTIVE_INFO" } ] } @@ -56,13 +56,13 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.queryBundleActiveStates(0, 20000000000000).then( res => { + stats.queryBundleActiveStates(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleActiveStates promise success.'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE queryBundleActiveStates promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE queryBundleActiveStates promise result ' + JSON.stringify(res[i])); } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleActiveStates promise failed, because: ' + err.code); }); @@ -86,7 +86,7 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.queryBundleStateInfos(0, 20000000000000).then( res => { + stats.queryBundleStateInfos(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleStateInfos promise success.'); let i = 1; for (let key in res){ @@ -94,7 +94,7 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE queryBundleStateInfos promise result ' + JSON.stringify(res[key])); i++; } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleStateInfos promise failed, because: ' + err.code); }); @@ -120,13 +120,13 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.queryCurrentBundleActiveStates(0, 20000000000000).then( res => { + stats.queryCurrentBundleActiveStates(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise success.'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise result ' + JSON.stringify(res[i])); } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryCurrentBundleActiveStates promise failed, because: ' + err.code); }); @@ -150,13 +150,13 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then( res => { + stats.queryBundleStateInfoByInterval(0, 0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise success.'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise result ' + JSON.stringify(res[i])); } - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleStateInfoByInterval promise failed, because: ' + err.code); }); @@ -180,9 +180,9 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // promise方式 - stats.queryAppUsagePriorityGroup().then( res => { + stats.queryAppUsagePriorityGroup().then(res => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code); }); @@ -202,9 +202,9 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.isIdleState("com.ohos.camera").then( res => { + stats.isIdleState("com.ohos.camera").then(res => { console.log('BUNDLE_ACTIVE isIdleState promise succeeded, result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE isIdleState promise failed, because: ' + err.code); }); @@ -224,18 +224,18 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.getRecentlyUsedModules(1000).then( res => { + stats.getRecentlyUsedModules(1000).then(res => { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1)); console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise result ' + JSON.stringify(res[i])); } - }).catch( err=> { + }).catch(err=> { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise failed, because: ' + err.code); }); // 无maNum参数异步方法promise方式 - stats.getRecentlyUsedModules().then( res => { + stats.getRecentlyUsedModules().then(res => { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise succeeded'); for (let i = 0; i < res.length; i++) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules promise number : ' + (i + 1)); @@ -246,7 +246,7 @@ import stats from '@ohos.bundleState'; }); // 异步方法callback方式 - stats.getRecentlyUsedModules(1000,(err, res) => { + stats.getRecentlyUsedModules(1000, (err, res) => { if(err) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code); } else { @@ -260,7 +260,7 @@ import stats from '@ohos.bundleState'; // 无maNum参数异步方法callback方式 stats.getRecentlyUsedModules((err, res) => { - if(err) { + if (err) { console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback failed, because: ' + err.code); } else { console.log('BUNDLE_ACTIVE getRecentlyUsedModules callback succeeded.'); @@ -278,10 +278,10 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.queryAppNotificationNumber(0, 20000000000000).then( res => { + stats.queryAppNotificationNumber(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise success.'); console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise result ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryAppNotificationNumber promise failed, because: ' + err.code); }); @@ -302,10 +302,10 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 异步方法promise方式 - stats.queryBundleActiveEventStates(0, 20000000000000).then( res => { + stats.queryBundleActiveEventStates(0, 20000000000000).then(res => { console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise success.'); console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise result ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryBundleActiveEventStates promise failed, because: ' + err.code); }); @@ -326,9 +326,9 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' // 无参异步方法promise方式 - stats.queryAppUsagePriorityGroup().then( res => { + stats.queryAppUsagePriorityGroup().then(res => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise succeeded. result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE queryAppUsagePriorityGroup promise failed. because: ' + err.code); }); @@ -342,15 +342,15 @@ import stats from '@ohos.bundleState'; }); //有参异步promise方式 - stats.queryAppUsagePriorityGroup(this.bundleName).then( res => { + stats.queryAppUsagePriorityGroup(this.bundleName).then(res => { console.log('BUNDLE_ACTIVE QueryPackageGroup promise succeeded. result: ' + JSON.stringify(res)); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE QueryPackageGroup promise failed. because: ' + err.code); }); //有参异步方法callback方式 stats.queryAppUsagePriorityGroup(this.bundleName, (err, res) => { - if(err) { + if (err) { console.log('BUNDLE_ACTIVE QueryPackageGroup callback failed. because: ' + err.code); } else { console.log('BUNDLE_ACTIVE QueryPackageGroup callback succeeded. result: ' + JSON.stringify(res)); @@ -364,14 +364,14 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' //异步方法promise - stats.setBundleGroup(this.bundleName, this.newGroup).then( () => { + stats.setBundleGroup(this.bundleName, this.newGroup).then(() => { console.log('BUNDLE_ACTIVE SetBundleGroup promise succeeded.'); }).catch( err => { console.log('BUNDLE_ACTIVE SetBundleGroup promise failed. because: ' + err.code); }); //异步方法callback stats.setBundleGroup(this.bundleName, this.newGroup, (err) => { - if(err) { + if (err) { console.log('BUNDLE_ACTIVE SetBundleGroup callback failed. because: ' + err.code); } else { console.log('BUNDLE_ACTIVE SetBundleGroup callback succeeded.'); @@ -385,7 +385,7 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' //异步方法promise形式 - let onBundleGroupChanged = (err,res) =>{ + let onBundleGroupChanged = (err,res) => { console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result oldGroup is : ' + res.oldGroup); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result newGroup is : ' + res.newGroup); @@ -393,13 +393,13 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result userId is : ' + res.userId); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result bundleName is : ' + res.bundleName); }; - stats.registerGroupCallBack(onBundleGroupChanged).then( () => { + stats.registerGroupCallBack(onBundleGroupChanged).then(() => { console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise succeeded.'); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE RegisterGroupCallBack promise failed. because: ' + err.code); }); //异步方法callback形式 - let onBundleGroupChanged = (err,res) =>{ + let onBundleGroupChanged = (err,res) => { console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s oldGroup is : ' + res.oldGroup); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s newGroup is : ' + res.newGroup); @@ -407,8 +407,8 @@ import stats from '@ohos.bundleState'; console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s userId is : ' + res.userId); console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack result‘s bundleName is : ' + res.bundleName); }; - stats.registerGroupCallBack(onBundleGroupChanged, (err)=>{ - if(err) { + stats.registerGroupCallBack(onBundleGroupChanged, (err) => { + if (err) { console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback failed, because: ' + err.code); } else { console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback success.'); @@ -422,14 +422,14 @@ import stats from '@ohos.bundleState'; import stats from '@ohos.bundleState' //promise - stats.unRegisterGroupCallBack().then( () => { + stats.unRegisterGroupCallBack().then(() => { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise succeeded.'); - }).catch( err => { + }).catch(err => { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack promise failed. because: ' + err.code); }); //callback - stats.unRegisterGroupCallBack((err)=>{ - if(err) { + stats.unRegisterGroupCallBack((err) => { + if (err) { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback failed, because: ' + err.code); } else { console.log('BUNDLE_ACTIVE UnRegisterGroupCallBack callback success.'); diff --git a/zh-cn/application-dev/device/sensor-guidelines.md b/zh-cn/application-dev/device/sensor-guidelines.md index bae53e67dc9b2f0943d550918342056a812e17cd..6259723f5680f363646aca21d9341c6a22435622 100644 --- a/zh-cn/application-dev/device/sensor-guidelines.md +++ b/zh-cn/application-dev/device/sensor-guidelines.md @@ -34,40 +34,52 @@ 1. 获取设备上传感器的数据,需要在“config.json”里面进行配置请求权限。具体如下: ``` - ”reqPermissions“:[ - { - "name":"ohos.permission.ACCELEROMETER", - "reason"":"", - "usedScene":{ - "ability": ["sensor.index.MainAbility",".MainAbility"], - "when":"inuse" - } - }, - { - "name":"ohos.permission.GYROSCOPE", - "reason"":"", - "usedScene":{ - "ability": ["sensor.index.MainAbility",".MainAbility"], - "when":"inuse" - } - }, - { - "name":"ohos.permission.ACTIVITY_MOTION", - "reason"":"ACTIVITY_MOTION_TEST", - "usedScene":{ - "ability": ["sensor.index.MainAbility",".MainAbility"], - "when":"inuse" - } - }, - { - "name":"ohos.permission.READ_HEALTH_DATA", - "reason"":"HEALTH_DATA_TEST", - "usedScene":{ - "ability": ["sensor.index.MainAbility",".MainAbility"], - "when":"inuse" - } - }, - ] + "reqPermissions": [ + { + "name": "ohos.permission.ACCELEROMETER", + "reason": "", + "usedScene": { + "ability": [ + "sensor.index.MainAbility", + ".MainAbility" + ], + "when": "inuse" + } + }, + { + "name": "ohos.permission.GYROSCOPE", + "reason": "", + "usedScene": { + "ability": [ + "sensor.index.MainAbility", + ".MainAbility" + ], + "when": "inuse" + } + }, + { + "name": "ohos.permission.ACTIVITY_MOTION", + "reason": "ACTIVITY_MOTION_TEST", + "usedScene": { + "ability": [ + "sensor.index.MainAbility", + ".MainAbility" + ], + "when": "inuse" + } + }, + { + "name": "ohos.permission.READ_HEALTH_DATA", + "reason": "HEALTH_DATA_TEST", + "usedScene": { + "ability": [ + "sensor.index.MainAbility", + ".MainAbility" + ], + "when": "inuse" + } + } + ] ``` 2. 持续监听传感器数据变化。 diff --git a/zh-cn/application-dev/device/vibrator-guidelines.md b/zh-cn/application-dev/device/vibrator-guidelines.md index 20248b8fb97aca66337b08c030a9ac29857f47b6..4aae5a17404baa8ae95e5e11138b6e02bb046aed 100644 --- a/zh-cn/application-dev/device/vibrator-guidelines.md +++ b/zh-cn/application-dev/device/vibrator-guidelines.md @@ -26,36 +26,36 @@ ``` "reqPermissions": [ - { - "name": "ohos.permission.ACCELEROMETER", - "reason": "", - "usedScene": { - "ability": [ - ".MainAbility" - ], - "when": "inuse" - } - }, - { - "name": "ohos.permission.VIBRATE", - "reason": "", - "usedScene": { - "ability": [ - ".MainAbility" - ], - "when": "inuse" - } - }, - { - "name": "ohos.permission.ACTIVITY_MOTION", - "reason": "", - "usedScene": { - "ability": [ - ".MainAbility" - ], - "when": "inuse" - } - }, + { + "name": "ohos.permission.ACCELEROMETER", + "reason": "", + "usedScene": { + "ability": [ + ".MainAbility" + ], + "when": "inuse" + } + }, + { + "name": "ohos.permission.VIBRATE", + "reason": "", + "usedScene": { + "ability": [ + ".MainAbility" + ], + "when": "inuse" + } + }, + { + "name": "ohos.permission.ACTIVITY_MOTION", + "reason": "", + "usedScene": { + "ability": [ + ".MainAbility" + ], + "when": "inuse" + } + }, ] ``` @@ -63,12 +63,12 @@ ``` import vibrator from "@ohos.vibrator" - vibrator.vibrate(1000).then((error)=>{ - if(error){//调用失败,打印error.code和error.message - Console.log("Promise return failed.error.code"+error.code+"error.message"+error.message); - }else{//调用成功,设备开始振动 + vibrator.vibrate(1000).then((error) => { + if (error) { //调用失败,打印error.code和error.message + Console.log("Promise return failed.error.code " + error.code + "error.message " + error.message); + } else { //调用成功,设备开始振动 Console.log("Promise returned to indicate a successful vibration.") - }; + } }) ``` @@ -76,12 +76,12 @@ ``` import vibrator from "@ohos.vibrator" - vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then((error)=>{ - if(error){//调用失败,打印error.code和error.message - Console.log("Promise return failed.error.code"+error.code+"error.message"+error.message); - }else{//调用成功,设备停止振动 + vibrator.stop(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET).then((error) => { + if (error) { //调用失败,打印error.code和error.message + Console.log("Promise return failed.error.code " + error.code + "error.message " + error.message); + } else { //调用成功,设备停止振动 Console.log("Promise returned to indicate successful."); - }; + } }) ``` diff --git a/zh-cn/application-dev/internationalization/i18n-guidelines.md b/zh-cn/application-dev/internationalization/i18n-guidelines.md index b74e9d3e192138d10250781892556ac33f916ad0..f089154c35eeeada1b7760c822caef29b6f9d990 100644 --- a/zh-cn/application-dev/internationalization/i18n-guidelines.md +++ b/zh-cn/application-dev/internationalization/i18n-guidelines.md @@ -7,232 +7,229 @@ 调用系统提供的接口访问系统的语言区域信息。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | -| ohos.i18n | getSystemLanguage(): string | 获取系统语言。 | -| ohos.i18n | getSystemRegion(): string | 获取系统区域。 | -| ohos.i18n | getSystemLocale(): string | 获取系统Locale。 | -| ohos.i18n | isRTL(locale: string): boolean7+ | locale对应的语言是否为从右到左语言。 | -| ohos.i18n | is24HourClock(): boolean7+ | 获取当前系统时间是否采用24小时制 | -| ohos.i18n | getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string | 获取语言的本地化表示。 | -| ohos.i18n | getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string | 获取国家名称的本地化表示。 | - +| ohos.i18n | getSystemLanguage():string | 获取系统语言。 | +| ohos.i18n | getSystemRegion():string | 获取系统区域。 | +| ohos.i18n | getSystemLocale():string | 获取系统Locale。 | +| ohos.i18n | isRTL(locale:string):boolean7+ | locale对应的语言是否为从右到左语言。 | +| ohos.i18n | is24HourClock():boolean7+ | 获取当前系统时间是否采用24小时制。 | +| ohos.i18n | getDisplayLanguage(language:string,locale:string,sentenceCase?:boolean):string | 获取语言的本地化表示。 | +| ohos.i18n | getDisplayCountry(country:string,locale:string,sentenceCase?:boolean):string | 获取国家的本地化表示。 | ### 开发步骤 -1. 获取系统语言。
+1. 获取系统语言。 + 调用getSystemLanguage方法获取当前系统设置的语言(i18n为导入的模块)。 - - ``` + ```js var language = i18n.getSystemLanguage(); ``` -2. 获取系统区域。
- 调用getSystemRegion方法获取当前系统设置的区域。 +2. 获取系统区域。 + + 调用getSystemRegion方法获取当前系统设置的区域 - ``` + ```js var region = i18n.getSystemRegion(); ``` -3. 获取系统Locale。
- 调用getSystemLocale方法获取当前系统设置的Locale。 +3. 获取系统Locale。 + + 调用getSystemLocale方法获取当前系统设置的Locale - ``` + ```js var locale = i18n.getSystemLocale(); ``` -4. 判断Locale的语言是否为RTL语言。
+4. 判断Locale的语言是否为RTL语言。 + 调用isRTL方法获取Locale的语言是否为从右到左语言。 - - ``` + ```js var rtl = i18n.isRTL("zh-CN"); ``` -5. 判断当前系统时间是否采用24小时制。
- 调用is24HourClock方法来判断当前系统的时间是否采用24小时制。 +5. 判断当前系统时间是否采用24小时制。 + + 调用is24HourClock方法来判断当前系统的时间是否采用24小时制。 - ``` + ```js var hourClock = i18n.is24HourClock(); ``` -6. 获取语言的本地化表示。
- 调用getDisplayLanguage方法获取某一语言的本地化表示。其中,language表示待本地化显示的语言,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。 +6. 获取语言的本地化表示。 + + 调用getDisplayLanguage方法获取某一语言的本地化表示。其中,language表示待本地化显示的语言,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。 - ``` + ```js var language = "en"; var locale = "zh-CN"; var sentenceCase = false; var localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase); ``` -7. 获取国家的本地化表示。
- 调用getDisplayCountry方法获取某一国家名称的本地化表示。其中,country表示国家码,使用两个大写字母表示(可参考ISO-3166),例如中国使用“CN”表示。locale表示本地化的Locale字符串。sentenceCase表示是否需要将返回结果的首字母大写。 +7. 获取国家的本地化表示。 + + 调用getDisplayCountry方法获取某一国家的本地化表示。其中,country表示待本地化显示的国家,locale表示本地化的Locale,sentenceCase结果是否需要首字母大写。 - ``` + ```js var country = "US"; var locale = "zh-CN"; var sentenceCase = false; - var localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase); // 返回 “美国” + var localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase); ``` - ## 获取日历信息 调用日历[Calendar](../reference/apis/js-apis-intl.md)相关接口来获取日历的相关信息,例如获取日历的本地化显示、一周起始日、一年中第一周的最小天数等。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | -| ohos.i18n | getCalendar(locale: string, type?: string): Calendar8+ | 获取指定locale和type的日历对象。 | -| ohos.i18n | setTime(date: Date): void8+ | 设置日历对象内部的时间日期。 | -| ohos.i18n | setTime(time: number): void8+ | 设置日历对象内部的时间日期。 | -| ohos.i18n | set(year: number, month: number, date: number, hour?: number, minute?: number, second?: number): void8+ | 设置日历对象的年、月、日、时、分、秒。 | -| ohos.i18n | setTimeZone(timezone: string): void8+ | 设置日历对象的时区。 | -| ohos.i18n | getTimeZone(): string8+ | 获取日历对象的时区。 | -| ohos.i18n | getFirstDayOfWeek(): number8+ | 获取日历对象的一周起始日。 | -| ohos.i18n | setFirstDayOfWeek(value: number): void8+ | 设置日历对象的一周起始日。 | -| ohos.i18n | getMinimalDaysInFirstWeek(): number8+ | 获取一年中第一周的最小天数。 | -| ohos.i18n | setMinimalDaysInFirstWeek(value: number): void8+ | 设置一年中第一周的最小天数。 | -| ohos.i18n | getDisplayName(locale: string): string8+ | 获取日历对象的本地化表示。 | -| ohos.i18n | isWeekend(date?: Date): boolean8+ | 判断给定的日期是否在日历中是周末。 | - +| ohos.i18n | getCalendar(locale:string,type?:string):Calendar8+ | 获取指定locale和type的日历对象。 | +| ohos.i18n | setTime(date:Date): void8+ | 设置日历对象内部的时间日期。 | +| ohos.i18n | setTime(time:number): void8+ | 设置日历对象内部的时间日期。 | +| ohos.i18n | set(year:number,month:number,date:number,hour?:number,minute?:number,second?:number): void8+ | 设置日历对象的年、月、日、时、分、秒。 | +| ohos.i18n | setTimeZone(timezone:string): void8+ | 设置日历对象的时区。 | +| ohos.i18n | getTimeZone():string8+ | 获取日历对象的时区。 | +| ohos.i18n | getFirstDayOfWeek():number8+ | 获取日历对象的一周起始日。 | +| ohos.i18n | setFirstDayOfWeek(value:number): void8+ | 设置日历对象的一周起始日。 | +| ohos.i18n | getMinimalDaysInFirstWeek():number8+ | 获取一年中第一周的最小天数。 | +| ohos.i18n | setMinimalDaysInFirstWeek(value:number): void8+ | 设置一年中第一周的最小天数。 | +| ohos.i18n | getDisplayName(locale:string):string8+ | 获取日历对象的本地化表示。 | +| ohos.i18n | isWeekend(date?:Date):boolean8+ | 判断给定的日期是否在日历中是周末。 | ### 开发步骤 -1. 实例化日历对象。
- 调用getCalendar方法获取指定locale和type的时区对象(i18n为导入的模块)。其中,type表示合法的日历类型,目前合法的日历类型包括:"buddhist", "chinese", "coptic", "ethiopic", "hebrew", "gregory", "indian", "islamic_civil", "islamic_tbla", "islamic_umalqura", "japanese", "persian"。当type没有给出时,采用区域默认的日历类型。 +1. 实例化日历对象。 + 调用getCalendar方法获取指定locale和type的时区对象(i18n为导入的模块)。其中,type表示合法的日历类型,目前合法的日历类型包括:"buddhist", "chinese", "coptic", "ethiopic", "hebrew", "gregory", "indian", "islamic_civil", "islamic_tbla", "islamic_umalqura", "japanese", "persian"。当type没有给出时,采用区域默认的日历类型。 - ``` + ```js var calendar = i18n.getCalendar("zh-CN", "gregory); ``` -2. 设置日历对象的时间。
- 调用setTime方法设置日历对象的时间。setTime方法接收两种类型的参数。一种是传入一个Date对象,另一种是传入一个数值表示从1970.1.1 00:00:00 GMT逝去的毫秒数。 +2. 设置日历对象的时间。 + + 调用setTime方法设置日历对象的时间。setTime方法接收两种类型的参数。一种是传入一个Date对象,另一种是传入一个数值表示从1970.1.1 00:00:00 GMT逝去的毫秒数。 - ``` + ```js var date1 = new Date(); calendar.setTime(date1); var date2 = 1000; calendar.setTime(date2); ``` -3. 设置日历对象的年、月、日、时、分、秒。
- 调用set方法设置日历对象的年、月、日、时、分、秒。 +3. 设置日历对象的年、月、日、时、分、秒。 + + 调用set方法设置日历对象的年、月、日、时、分、秒。 - ``` + ```js calendar.set(2021, 12, 21, 6, 0, 0) ``` -4. 设置、获取日历对象的时区。
- 调用setTimeZone方法和getTimeZone方法来设置、获取日历对象的时区。其中,setTimeZone方法需要传入一个字符串表示需要设置的时区。 +4. 设置、获取日历对象的时区。 + 调用setTimeZone方法和getTimeZone方法来设置、获取日历对象的时区。其中,setTimeZone方法需要传入一个字符串表示需要设置的时区。 - ``` + ```js calendar.setTimeZone("Asia/Shanghai"); var timezone = calendar.getTimeZone(); ``` -5. 设置、获取日历对象的一周起始日。
+5. 设置、获取日历对象的一周起始日。 + 调用setFirstDayOfWeek方法和getFirstDayOfWeek方法设置、获取日历对象的一周起始日。其中,setFirstDayOfWeek需要传入一个数值表示一周的起始日,1代表周日,7代表周六。 - - ``` + ```js calendar.setFirstDayOfWeek(1); var firstDayOfWeek = calendar.getFirstDayOfWeek(); ``` -6. 设置、获取日历对象第一周的最小天数。
- 调用setMinimalDaysInFirstWeek方法和getMinimalDaysInFirstWeek方法来设置、获取日历对象第一周的最小天数。 +6. 设置、获取日历对象第一周的最小天数 + 调用setMinimalDaysInFirstWeek方法和getMinimalDaysInFirstWeek方法来设置、获取日历对象第一周的最小天数。 - ``` + ```js calendar.setMinimalDaysInFirstWeek(3); var minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); ``` -7. 获取日历对象的本地化显示。
+7. 获取日历对象的本地化显示 调用getDisplayName来获取日历对象的本地化显示。 - - ``` + ```js var localizedName = calendar.getDisplayName("zh-CN"); ``` -8. 判断某一个日期是否为周末。
- 调用isWeekend方法来判断输入的Date是否为周末。 +8. 判断某一个日期是否为周末。 + 调用isWeekend方法来判断输入的Date是否为周末。 - ``` + ```js var date = new Date(); var weekend = calendar.isWeekend(date); ``` - ## 电话号码格式化 调用电话号码格式化[PhoneNumberFormat](../reference/apis/js-apis-intl.md)的接口,实现对针对不同国家电话号码的格式化以及判断电话号码格式是否正确的功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | -| ohos.i18n | constructor(country: string, options?: PhoneNumberFormatOptions)8+ | 实例化PhoneNumberFormat对象。 | -| ohos.i18n | isValidNumber(number: string): boolean8+ | 判断number是否是一个格式正确的电话号码。 | -| ohos.i18n | format(number: string): string8+ | 对number按照指定国家及风格进行格式化。 | - +| ohos.i18n | constructor(country:string,options?:PhoneNumberFormatOptions)8+ | 实例化PhoneNumberFormat对象。 | +| ohos.i18n | isValidNumber(number:string):boolean8+ | 判断number是否是一个格式正确的电话号码。 | +| ohos.i18n | format(number:string):string8+ | 对number按照指定国家及风格进行格式化。 | ### 开发步骤 -1. 实例化电话号码格式化对象。
- 调用PhoneNumberFormat的构造函数来实例化电话号码格式化对象,需要传入电话号码的国家代码及格式化选项。其中,格式化选项是可选的,包括style选项,该选项的取值包括:"E164", "INTERNATIONAL", "NATIONAL", "RFC3966"。 +1. 实例化电话号码格式化对象。 + 调用PhoneNumberFormat的构造函数来实例化电话号码格式化对象,需要传入电话号码的国家代码及格式化选项。其中,格式化选项是可选的,包括style选项,该选项的取值包括:"E164", "INTERNATIONAL", "NATIONAL", "RFC3966"。 - ``` - var phoneNumberFormat = new i18n.PhoneNumberFormat("CN", {type: "E164"}); + ```js + var phoneNumberFormat = new i18n.PhoneNubmerFormat("CN", {type: "E164"}); ``` -2. 判断电话号码格式是否正确。
- 调用isValidNumber方法来判断输入的电话号码的格式是否正确。 +2. 判断电话号码格式是否正确。 + + 调用isValidNumber方法来判断输入的电话号码的格式是否正确。 - ``` + ```js var validNumber = phoneNumberFormat.isValidNumber("15812341234"); ``` -3. 电话号码格式化。
- 调用电话号码格式化对象的format方法来对输入的电话号码进行格式化。 +3. 电话号码格式化。 + + 调用电话号码格式化对象的format方法来对输入的电话号码进行格式化。 - ``` + ```js var formattedNumber = phoneNumberFormat.format("15812341234"); ``` - ## 度量衡转换 度量衡转换接口可以实现度量衡转换的相关功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | -| ohos.i18n | unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string8+ | 将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。 | - +| ohos.i18n | unitConvert(fromUnit:UnitInfo,toUnit:UnitInfo,value:number,locale:string,style?:string):string8+ | 将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。 | ### 开发步骤 -1. 度量衡单位转换。
+1. 度量衡单位转换。 + 调用[unitConvert](../reference/apis/js-apis-intl.md)方法实现度量衡单位转换,并进行格式化显示的功能。 - - ``` + ```js var fromUnit = {unit: "cup", measureSystem: "US"}; var toUnit = {unit: "liter", measureSystem: "SI"}; var number = 1000; @@ -241,110 +238,108 @@ i18n.Util.unitConvert(fromUtil, toUtil, number, locale, style); ``` - ## 字母表索引 调用字母表索引[IndexUtil](../reference/apis/js-apis-intl.md)的接口可以获取不同Locale的字母表索引,以及实现计算字符串所属索引的功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | -| ohos.i18n | getInstance(locale?: string): IndexUtil8+ | 实例化字母表索引对象。 | -| ohos.i18n | getIndexList(): Array<string>8+ | 获取当前Locale的索引列表。 | -| ohos.i18n | addLocale(locale: string): void8+ | 将新的Locale对应的索引加入当前索引列表。 | -| ohos.i18n | getIndex(text: string): string8+ | 获取text对应的索引。 | - +| ohos.i18n | getInstance(locale?:string):IndexUtil8+ | 实例化字母表索引对象。 | +| ohos.i18n | getIndexList():Array<string>8+ | 获取当前Locale的索引列表。 | +| ohos.i18n | addLocale(locale:string): void8+ | 将新的Locale对应的索引加入当前索引列表。 | +| ohos.i18n | getIndex(text:string):string8+ | 获取text对应的索引。 | ### 开发步骤 -1. 实例化字母表索引对象。
+1. 实例化字母表索引对象。 + 调用getInstance方法来实例化特定locale对应的字母表索引对象。当locale参数为空时,实例化系统默认Locale的字母表索引对象。 - ``` + ```js var indexUtil = getInstance("zh-CN"); ``` -2. 获取索引列表。
- 调用getIndexList方法来获取当前Locale对应的字母表索引列表。 +2. 获取索引列表。 + + 调用getIndexList方法来获取当前Locale对应的字母表索引列表。 - ``` + ```js var indexList = indexUtil.getIndexList(); ``` -3. 增加新的索引。
- 调用addLocale方法,将新的Locale对应的字母表索引添加到当前字母表索引列表中。 +3. 增加新的索引。 + + 调用addLocale方法,将新的Locale对应的字母表索引添加到当前字母表索引列表中。 - ``` + ```js indexUtil.addLocale("ar") ``` -4. 获取字符串对应的索引。
- 调用getIndex方法来获取某一字符串对应的字母表索引。 +4. 获取字符串对应的索引。 + + 调用getIndex方法来获取某一字符串对应的字母表索引。 - ``` + ```js var text = "access index"; indexUtil.getIndex(text); ``` - ## 获取文本断点位置 当文本比较长无法在一行进行显示时,调用文本断点[BreakIterator8](../reference/apis/js-apis-intl.md)的接口,来获取文本可以断行的位置。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | -| ohos.i18n | getLineInstance(locale: string): BreakIterator8+ | 实例化断行对象。 | -| ohos.i18n | setLineBreakText(text: string): void8+ | 设置要处理的文本。 | -| ohos.i18n | getLineBreakText(): string8+ | 获取要处理的文本。 | -| ohos.i18n | current(): number8+ | 获取当前断行对象在处理文本的位置。 | -| ohos.i18n | first(): number8+ | 将断行对象设置到第一个可断句的分割点。 | -| ohos.i18n | last(): number8+ | 将断行对象设置到最后一个可断句的分割点。 | -| ohos.i18n | next(index?: number): number8+ | 将断行对象移动index个分割点的位置。 | -| ohos.i18n | previous(): number8+ | 将断行对象移动到前一个分割点的位置。 | -| ohos.i18n | following(offset: number): number8+ | 将断行对象移动到offset指定位置的后面一个分割点的位置。 | -| ohos.i18n | isBoundary(offset: number): boolean8+ | 判断某个位置是否是分割点。 | - +| ohos.i18n | getLineInstance(locale:string):BreakIterator8+ | 实例化断行对象。 | +| ohos.i18n | setLineBreakText(text:string): void8+ | 设置要处理的文本。 | +| ohos.i18n | getLineBreakText():string8+ | 获取要处理的文本。 | +| ohos.i18n | current():number8+ | 获取当前断行对象在处理文本的位置。 | +| ohos.i18n | first():number8+ | 将断行对象设置到第一个可断句的分割点。 | +| ohos.i18n | last():number8+ | 将断行对象设置到最后一个可断句的分割点。 | +| ohos.i18n | next(index?:number):number8+ | 将断行对象移动index个分割点的位置。 | +| ohos.i18n | previous():number8+ | 将断行对象移动到前一个分割点的位置。 | +| ohos.i18n | following(offset:number):number8+ | 将断行对象移动到offset指定位置的后面一个分割点的位置。 | +| ohos.i18n | isBoundary(offset:number):boolean8+ | 判断某个位置是否是分割点。 | ### 开发步骤 -1. 实例化断行对象。
+1. 实例化断行对象。 + 调用getLineInstance方法来实例化断行对象。 - - ``` + ```js var locale = "en-US" var breakIterator = i18n.getLineInstance(locale); ``` -2. 设置、访问要断行处理的文本。
+2. 设置、访问要断行处理的文本。 + 调用setLineBreakText方法和getLineBreakText方法来设置、访问要断行处理的文本。 - - ``` + ```js var text = "Apple is my favorite fruit"; breakIterator.setLineBreakText(text); var breakText = breakIterator.getLineBreakText(); ``` -3. 获取断行对象当前的位置。
- 调用current方法来获取断行对象在当前处理文本中的位置。 +3. 获取断行对象当前的位置。 + 调用current方法来获取断行对象在当前处理文本中的位置。 - ``` + ```js var pos = breakIterator.current(); ``` -4. 设置断行对象的位置。
+4. 设置断行对象的位置。 + 系统提供了很多接口可以用于调整断行对象在处理文本中的位置,包括first, last, next, previous, following。 - - ``` + ```js var firstPos = breakIterator.first(); // 将断行对象设置到第一个分割点的位置,即文本的起始位置; var lastPos = breakIterator.last(); // 将断行对象设置到最后一个分割点的位置,即文本末尾的下一个位置; // 将断行对象向前或向后移动一定数量的分割点。 @@ -356,10 +351,10 @@ var followingPos = breakIterator.following(10); ``` -5. 判断某个位置是否为分割点。
- 调用isBoundary方法来判断一个方法是否为分割点;如果该位置是分割点,则返回true,并且将断行对象移动到该位置;如果该位置不是分割点,则返回false,并且将断行对象移动到该位置后的一个分割点。 +5. 判断某个位置是否为分割点。 + 调用isBoundary方法来判断一个方法是否为分割点;如果该位置是分割点,则返回true,并且将断行对象移动到该位置;如果该位置不是分割点,则返回false,并且将断行对象移动到该位置后的一个分割点。 - ``` + ```js var isboundary = breakIterator.isBoundary(5); - ``` + ``` \ No newline at end of file diff --git a/zh-cn/application-dev/internationalization/intl-guidelines.md b/zh-cn/application-dev/internationalization/intl-guidelines.md index 27a1786170471f16e55b39b476da02aa1b87e422..ceb2f492b42a98e0aa6e1df30db8d801d3cf314c 100644 --- a/zh-cn/application-dev/internationalization/intl-guidelines.md +++ b/zh-cn/application-dev/internationalization/intl-guidelines.md @@ -7,21 +7,19 @@ 调用[Locale](../reference/apis/js-apis-intl.md)的相关接口实现最大化区域信息或最小化区域信息。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | | ohos.intl | constructor()8+ | 实例化Locale对象。 | -| ohos.intl | constructor(locale: string, options?: LocaleOptions) | 基于locale参数及其选项实例化Locale对象。 | -| ohos.intl | toString(): string | 将Locale信息转换为字符串。 | -| ohos.intl | maximize(): Locale | 最大化区域信息。 | -| ohos.intl | minimize(): Locale | 最小化区域信息。 | - +| ohos.intl | constructor(locale:string,options?:LocaleOptions) | 基于locale参数及其选项实例化Locale对象。 | +| ohos.intl | toString():string | 将Locale信息转换为字符串。 | +| ohos.intl | maximize():Locale | 最大化区域信息。 | +| ohos.intl | minimize():Locale | 最小化区域信息。 | ### 开发步骤 -1. 实例化Locale对象 +1. 实例化Locale对象。 使用Locale的构造函数创建Locale对象,该方法接收一个表示Locale的字符串及可选的[属性](../reference/apis/js-apis-intl.md)列表(intl为导入的模块名)。 @@ -39,281 +37,290 @@ | kn | 表示字符串排序、比较时是否考虑数字的实际值 | | kf | 表示字符串排序、比较时是否考虑大小写 | - ``` +| 扩展参数ID | 扩展参数说明 | +| -------- | -------- | +| ca | 表示日历系统 | +| co | 表示排序规则 | +| hc | 表示守时惯例 | +| nu | 表示数字系统 | +| kn | 表示字符串排序、比较时是否考虑数字的实际值 | +| kf | 表示字符串排序、比较时是否考虑大小写 | + + ```js var locale = "zh-CN"; var options = {caseFirst: false, calendar: "chinese", collation: pinyin}; var localeObj = new intl.Locale(locale, options); ``` -2. 获取Locale的字符串表示 +2. 获取Locale的字符串表示。 + 调用toString方法来获取Locale对象的字符串表示,其中包括了语言、区域及其他选项信息。 - ``` + ```js var localeStr = localeObj.toString(); ``` -3. 最大化区域信息 +3. 最大化区域信息。 + 调用maximize方法来最大化区域信息,即当缺少脚本与地区信息时,对其进行补全。 - ``` + ```js var maximizedLocale = localeObj.maximize(); ``` -4. 最小化区域信息 +4. 最小化区域信息。 + 调用minimize方法来最小化区域信息,即当存在脚本与地区信息时,对其进行删除。 - ``` + ```js var minimizedLocale = localeObj.minimize(); ``` - ## 格式化日期时间 调用日期时间格式化[DateTimeFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的日期格式化以及时间段格式化功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | | ohos.intl | constructor()8+ | 创建日期时间格式化对象。 | -| ohos.intl | constructor(locale: string \| Array<string>, options?: DateTimeOptions) | 创建日期时间格式化对象,并设置提供的Locale和格式化相关属性。 | -| ohos.intl | format(date: Date): string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算日期时间的格式化表示。 | -| ohos.intl | formatRange(startDate: Date, endDate: Date): string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算时间段的格式化表示。 | -| ohos.intl | resolvedOptions(): DateTimeOptions | 获取DateTimeFormat对象的相关属性。 | - +| ohos.intl | constructor(locale:string\|Array<string>,options?:DateTimeOptions) | 创建日期时间格式化对象,并设置提供的Locale和格式化相关属性。 | +| ohos.intl | format(date:Date):string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算日期时间的格式化表示。 | +| ohos.intl | formatRange(startDate:Date,endDate:Date):string | 依据DateTimeFormat对象的Locale及其他格式化属性,计算时间段的格式化表示。 | +| ohos.intl | resolvedOptions():DateTimeOptions | 获取DateTimeFormat对象的相关属性。 | ### 开发步骤 -1. 实例化日期时间格式化对象 +1. 实例化日期时间格式化对象。 + 一种方法是使用DateTimeFormat提供的默认构造函数,通过访问系统语言和地区设置,获取系统默认Locale,并将其作为DateTimeFormat对象内部的Locale(intl为导入的模块名)。 - - ``` + ```js var dateTimeFormat = new intl.DateTimeFormat(); ``` 另一种方法是使用开发者提供的Locale和格式化参数来创建日期时间格式化对象。其中,格式化参数是可选的,完整的格式化参数列表见[DateTimeOptions](../reference/apis/js-apis-intl.md)。 - ``` + ```js var options = {dateStyle: "full", timeStyle: "full"}; var dateTimeFormat = new intl.DateTimeFormat("zh-CN", options); ``` -2. 格式化日期时间 +2. 格式化日期时间。 + 使用DateTimeFormat的format方法对一个Date对象进行格式化,该方法会返回一个字符串作为格式化的结果。 - ``` + ```js Date date = new Date(); var formatResult = dateTimeFormat.format(date); ``` -3. 格式化时间段 +3. 格式化时间段。 + 使用DateTimeFormat的formatRange方法对一个时间段进行格式化。该方法需要传入两个Date对象,分别表示时间段的起止时间,返回一个字符串作为格式化的结果。 - ``` + ```js Date startDate = new Date(); Date endDate = new Date(); var formatResult = dateTimeFormat.formatRange(startDate, endDate); ``` -4. 访问日期时间格式化对象的相关属性 +4. 访问日期时间格式化对象的相关属性。 + DateTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了DateTimeFormat对象的所有相关属性及其值。 - ``` + ```js var options = dateTimeFormat.resolvedOptions(); ``` - ## 数字格式化 调用数字格式化[NumberFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的数字格式化功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | | ohos.intl | constructor()8+ | 创建数字格式化对象。 | -| ohos.intl | constructor(locale: string \| Array<string>, options?: NumberOptions) | 创建数字格式化对象,并设置提供的locale和格式化相关属性。 | -| ohos.intl | format(number: number): string | 依据NumberFormat对象的Locale及其他格式化属性,计算数字的格式化表示。 | -| ohos.intl | resolvedOptions(): NumberOptions | 获取NumberFormat对象的相关属性。 | - +| ohos.intl | constructor(locale:string\|Array<string>,options?:NumberOptions) | 创建数字格式化对象,并设置提供的locale和格式化相关属性。 | +| ohos.intl | format(number:number):string | 依据NumberFormat对象的Locale及其他格式化属性,计算数字的格式化表示。 | +| ohos.intl | resolvedOptions():NumberOptions | 获取NumberFormat对象的相关属性。 | ### 开发步骤 -1. 实例化数字格式化对象 +1. 实例化数字格式化对象。 + 一种方法是使用NumberFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 - - ``` + ```js var numberFormat = new intl.NumberFormat(); ``` 另一种方法是使用开发者提供的Locale和格式化参数来创建数字格式化对象。其中,格式化参数是可选的,完整的格式化参数列表参见[NumberOptions](../reference/apis/js-apis-intl.md)。 - ``` + ```js var options = {compactDisplay: "short", notation: "compact"}; var numberFormat = new intl.NumberFormat("zh-CN", options); ``` -2. 数字格式化 +2. 数字格式化。 + 使用NumberFormat的format方法对传入的数字进行格式化。该方法返回一个字符串作为格式化的结果。 - ``` + ```js var number = 1234.5678 var formatResult = numberFormat.format(number); ``` -3. 访问数字格式化对象的相关属性 +3. 访问数字格式化对象的相关属性。 + NumberFormat的resolvedOptions方法会返回一个对象,该对象包含了NumberFormat对象的所有相关属性及其值。 - ``` + ```js var options = numberFormat.resolvedOptions(); ``` - ## 字符串排序 不同区域的用户对于字符串排序具有不同的需求。调用字符串排序[Collator](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的字符串排序功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | | ohos.intl | constructor()8+ | 创建排序对象。 | -| ohos.intl | constructor(locale: string \| Array<string>, options?: CollatorOptions)8+ | 创建排序对象,并设置提供的locale和其他相关属性。 | -| ohos.intl | compare(first: string, second: string): number8+ | 依据排序对象的Locale及其属性,计算两个字符串的比较结果。 | -| ohos.intl | resolvedOptions(): CollatorOptions8+ | 获取排序对象的相关属性。 | - +| ohos.intl | constructor(locale:string\|Array<string>,options?:CollatorOptions)8+ | 创建排序对象,并设置提供的locale和其他相关属性。 | +| ohos.intl | compare(first:string,second:string):number8+ | 依据排序对象的Locale及其属性,计算两个字符串的比较结果。 | +| ohos.intl | resolvedOptions():CollatorOptions8+ | 获取排序对象的相关属性。 | ### 开发步骤 -1. 实例化排序对象 +1. 实例化排序对象。 + 一种方法是使用Collator提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 - - ``` + ```js var collator = new intl.Collator(); ``` 另一种方法是使用开发者提供的Locale和其他相关参数来创建Collator对象,完整的参数列表参见[CollatorOptions](../reference/apis/js-apis-intl.md)。 - ``` - var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}; + ```js + var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}); ``` -2. 比较字符串 +2. 比较字符串。 + 使用Collator的compare方法对传入的两个字符串进行比较。该方法返回一个数值作为比较的结果,返回-1表示第一个字符串小于第二个字符串,返回1表示第一个字符大于第二个字符串,返回0表示两个字符串相同。 - ``` + ```js var str1 = "first string"; var str2 = "second string"; var compareResult = collator.compare(str1, str2); ``` -3. 访问排序对象的相关属性 +3. 访问排序对象的相关属性。 + Collator的resolvedOptions方法会返回一个对象,该对象包含了Collator对象的所有相关属性及其值。 - ``` + ```js var options = collator.resolvedOptions(); ``` - ## 判定单复数类别 在一些语言的语法中,当数字后面存在名词时,名词需要根据数字的值采用不同的形式。调用单复数[PluralRules](../reference/apis/js-apis-intl.md)的接口,可以实现针对特定Locale计算数字单复数类别的功能,从而选择合适的名词单复数表示。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | | ohos.intl | constructor()8+ | 创建单复数对象。 | -| ohos.intl | constructor(locale: string \| Array<string>, options?: PluralRulesOptions)8+ | 创建单复数对象,并设置提供的locale和其他相关属性。 | -| ohos.intl | select(n: number): string8+ | 依据单复数对象的Locale及其他格式化属性,计算数字的单复数类别。 | +| ohos.intl | constructor(locale:string\|Array<string>,options?:PluralRulesOptions)8+ | 创建单复数对象,并设置提供的locale和其他相关属性。 | +| ohos.intl | select(n:number):string8+ | 依据单复数对象的Locale及其他格式化属性,计算数字的单复数类别。 | ### 开发步骤 -1. 实例化单复数对象 +1. 实例化单复数对象。 + 一种方法是使用PluralRules提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 - - ``` + ```js var pluralRules = new intl.PluralRules(); ``` - 另一种方法是使用开发者提供的Locale和其他相关参数来创建单复数对象,完整的参数列表参见[PluralRulesOptions](../reference/apis/js-apis-intl.md)。 + 另一种方法是使用开发者提供的Locale和其他相关参数来创建单复数对象。完整的参数列表参见[PluralRulesOptions](../reference/apis/js-apis-intl.md)。 - ``` - var plurals = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}; + ```js + var plurals = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); ``` -2. 计算数字单复数类别 +2. 计算数字单复数类别。 + 使用PluralRules的select方法计算传入数字的单复数类别。该方法返回一个字符串作为传入数字的类别,包括:"zero", "one", "two", "few", "many", "other"六个类别。 - ``` + ```js var number = 1234.5678 var categoryResult = plurals.select(number); ``` - ## 相对时间格式化 调用相对时间格式化[RelativeTimeFormat](../reference/apis/js-apis-intl.md)的接口,实现针对特定Locale的相对时间格式化功能。 - ### 接口说明 | 模块 | 接口名称 | 描述 | | -------- | -------- | -------- | | ohos.intl | constructor()8+ | 创建相对时间格式化对象。 | -| ohos.intl | constructor(locale: string \| Array<string>, options?: RelativeTimeFormatInputOptions)8+ | 创建相对时间格式化对象,并设置提供的locale和格式化相关属性。 | -| ohos.intl | format(value: number, unit: string): string8+ | 依据相对时间格式化对象的Locale及其他格式化属性,计算相对时间的格式化表示。 | -| ohos.intl | formatToParts(value: number, unit: string): Array<object>8+ | 依据相对时间格式化对象的Locale及其他格式化属性,返回相对时间格式化表示的各个部分。 | -| ohos.intl | resolvedOptions(): RelativeTimeFormatResolvedOptions8+ | 获取相对时间格式化对象的相关属性。 | - +| ohos.intl | constructor(locale:string\|Array<string>,options?:RelativeTimeFormatInputOptions)8+ | 创建相对时间格式化对象,并设置提供的locale和格式化相关属性。 | +| ohos.intl | format(value:number,unit:string):string8+ | 依据相对时间格式化对象的Locale及其他格式化属性,计算相对时间的格式化表示。 | +| ohos.intl | formatToParts(value:number,unit:string):Array<object>8+ | 依据相对时间格式化对象的Locale及其他格式化属性,返回相对时间格式化表示的各个部分。 | +| ohos.intl | resolvedOptions():RelativeTimeFormatResolvedOptions8+ | 获取相对时间格式化对象的相关属性。 | ### 开发步骤 -1. 实例化相对时间格式化对象 - 一种方法是使用RelativeTimeFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 +1. 实例化相对时间格式化对象。 + 一种方法是使用RelativeTimeFormat提供的默认构造函数,通过访问系统的语言和地区以获取系统默认Locale并进行设置(intl为导入的模块名)。 - ``` + ```js var relativeTimeFormat = new intl.RelativeTimeFormat(); ``` 另一种方法是使用开发者提供的Locale和格式化参数来创建相对时间格式化对象。其中,格式化参数是可选的,完整的参数列表参见[ RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md)。 ``` - var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}; + var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); ``` -2. 相对时间格式化 +2. 相对时间格式化。 + 使用RelativeTimeFormat的format方法对相对时间进行格式化。方法接收一个表示相对时间长度的数值和表示单位的字符串,其中单位包括:"year", "quarter", "month", "week", "day", "hour", "minute", "second"。方法返回一个字符串作为格式化的结果。 - ``` + ```js var number = 2; var unit = "year" var formatResult = relativeTimeFormat.format(number, unit); ``` -3. 获取相对时间格式化结果的各个部分 +3. 获取相对时间格式化结果的各个部分。 + 获取相对时间格式化结果的各个部分,从而自定义格式化结果。 - ``` + ```js var number = 2; var unit = "year" var formatResult = relativeTimeFormat.formatToParts(number, unit); ``` -4. 访问相对时间格式化对象的相关属性 +4. 访问相对时间格式化对象的相关属性。 + RelativeTimeFormat的resolvedOptions方法会返回一个对象,该对象包含了RelativeTimeFormat对象的所有相关属性及其值,完整的属性列表参见[ RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md)。 - ``` + ```js var options = numberFormat.resolvedOptions(); ``` diff --git a/zh-cn/application-dev/media/image.md b/zh-cn/application-dev/media/image.md index f943d17b2fa46f1b68f256e953b872ba86728964..1af8cd8b6a5d3de52b5ebd060225f61257d49faf 100644 --- a/zh-cn/application-dev/media/image.md +++ b/zh-cn/application-dev/media/image.md @@ -15,13 +15,13 @@ 包含流程:创建实例、读取图片信息、读写pixelmap、更新数据、打包像素、释放资源等流程。 ```js -const Color = new ArrayBuffer(96);//用于存放图像像素数据 +const color = new ArrayBuffer(96);//用于存放图像像素数据 let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 2, width: 3 } } //图像像素数据 //创建pixelmap对象 -const Color = new ArrayBuffer(96); +const color = new ArrayBuffer(96); let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 2, width: 3 } } - image.createPixelMap(Color, opts, pixelmap => { + image.createPixelMap(color, opts, pixelmap => { expect(pixelmap !== null).assertTrue(); console.info('TC_001-1 success'); done(); diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128646.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128646.png new file mode 100644 index 0000000000000000000000000000000000000000..c959925cfe28e81a8aa5565e4e9194c870f232b1 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128646.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128756.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128756.png new file mode 100644 index 0000000000000000000000000000000000000000..6d16295957cdeaa957b4d5e3d03c1129e9e83e07 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128756.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128844.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128844.png new file mode 100644 index 0000000000000000000000000000000000000000..8d7478096eaa6f49421ede9c55174d69bc97e7a4 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128844.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128894.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128894.png new file mode 100644 index 0000000000000000000000000000000000000000..5eaba9fabdafa12eca1da0822b4386d02530e793 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128894.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128939.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128939.png new file mode 100644 index 0000000000000000000000000000000000000000..606ce3a0eab0a39f166029182bcc2f70291740d6 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128939.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png new file mode 100644 index 0000000000000000000000000000000000000000..cccca58909932db46aa1befe4bfccb84f8eba059 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655128998.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png new file mode 100644 index 0000000000000000000000000000000000000000..038118b55274fc0f4b02e03aa6fc96cf119d3858 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129041.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png new file mode 100644 index 0000000000000000000000000000000000000000..28dd39be98b6aa006bbea9a727a8c3eee940e0a5 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129232.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129264.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129264.png new file mode 100644 index 0000000000000000000000000000000000000000..62efb682a4a9bdb31d929ea0e728327a8b42ee58 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129264.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129305.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129305.png new file mode 100644 index 0000000000000000000000000000000000000000..8160c10a4ef4d3cbe8074576915ba198ebc2159e Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129305.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png new file mode 100644 index 0000000000000000000000000000000000000000..6e343ebc68da42ad9402c313d175a90082fd75e1 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129333.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129372.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129372.png new file mode 100644 index 0000000000000000000000000000000000000000..0706c7ee4a1581505e9f27574e02b98287d802d7 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129372.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b29950bb4f3ac3c4815c20317964a3d9572a97 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001655129398.png differ diff --git a/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md b/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md new file mode 100644 index 0000000000000000000000000000000000000000..09bedd312ab92be022c61795f7ee73cc7ce8f74c --- /dev/null +++ b/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md @@ -0,0 +1,98 @@ +# full-SDK替换指南 + +**public-SDK**是提供给应用开发的工具包,跟随DevEco Studio下载,不包含系统应用所需要的高权限API + +**full-SDK**是提供给OEM厂商开发应用的工具包,不能随DevEco Studio下载,包含了系统应用所需要的高权限API + +三方开发者通过DevEco Studio自动下载的**API8版本**SDK均为**public版本**。public-SDK**不支持**开发者使用**所有的系统API**,包括animator组件、xcomponent组件、@ohos.application.abilityManager.d.ts、@ohos.application.formInfo.d.ts、@ohos.bluetooth.d.ts等,如工程必须依赖于系统API,请按照以下步骤替换**full-SDK**。 + +## 下载full-SDK(这里以3.1.1 Release版本为例) + +full-SDK需要手动下载。请参考[OpenHarmony 3.1.1 Release版本说明书](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md)中的获取方式,获取所需的操作系统的full-SDK。 + + + +![image-20220613161049897](figures/zh-cn_image_0000001655128646.png) + + + + +## 查看本地SDK路径(此处以ets工程为例,1.0工程请以相同方式替换js-SDK) + +打开DevEco Studio——>Tools——>OpenHarmony SDK Manager,查看本地SDK安装路径。 + +![](figures/zh-cn_image_0000001655128939.png) + +![image-20220613160524053](figures/zh-cn_image_0000001655128998.png) + + +## 替换SDK + +1. 确认下载的SDK版本是否为full-SDK + + a.检查下载文件名是否包含full-SDK字样 + + ![image-20220613220702504](figures/zh-cn_image_0000001655129232.png) + + b.检查api中是否包含系统API(@ohos.application.abilityManager.d.ts、@ohos.application.formInfo.d.ts、@ohos.bluetooth.d.ts等) + + 注:系统api判定标准以发布api指导文档为主。 + + + +2. 替换SDK,以public-SDK-3.1.6.6版本为例。 + + 以windows为例: + + a.解压已下载的full-SDK文件:`ets-windows-3.1.6.5-Release.zip` + + ![image-20220613165018184](figures/zh-cn_image_0000001655129264.png) + + b.替换SDK文件 + + **备份本地SDK**(复制并重命名ets目录下版本信息目录名,或者将ets目录拷贝至其他本地路径) + + 打开获取到的本地已安装SDK文件路径并进行备份。 + + ![image-20220613161352157](figures/zh-cn_image_0000001655129041.png) + + 注:备份版本信息目录名称只要与其下`oh-uni-package.json`配置文件的version字段不一致即可,如下图所示,备份3.1.6.6版本sdk + + ![image-20220613165018184](figures/zh-cn_image_0000001655129398.png) + + `oh-uni-package.json`文件配置信息如下: + + ``` + { + "apiVersion": "8", + "displayName": "Ets", + "meta": { + "metaVersion": "3.0.0" + }, + "path": "ets", + "releaseType": "Release", + "version": "3.1.6.6" + } + ``` + + **删除原SDK(3.1.6.6)目录中的所有文件**(否则可能会导致文件无法全部覆盖) + + + + **拷贝full-SDK至本地SDK路径** + + 将下载的full-SDK文件包中`ets`目录下的所有文件替换至本地SDK路径下`ets\3.1.6.6`目录中 + + 修改`oh-uni-package.json`配置文件的version字段为当前SDK版本号 + + + + 在`3.1.6.6\build-tools\ets-loader`目录中打开cmd/powerShell窗口,输入命令`npm install`下载**node_modules**依赖包 + + ![image-20220613171111405](figures/zh-cn_image_0000001655129333.png) + + + + c.验证系统API接口 + + ![image-20220613213038104](figures/zh-cn_image_0000001655129372.png) \ No newline at end of file diff --git a/zh-cn/application-dev/quick-start/package-structure.md b/zh-cn/application-dev/quick-start/package-structure.md index 34142919b44784b74267c5897a3c80e0e15994da..f5398419071b884b9b48da24168e8ac1791ab636 100644 --- a/zh-cn/application-dev/quick-start/package-structure.md +++ b/zh-cn/application-dev/quick-start/package-structure.md @@ -116,15 +116,15 @@ app实例: "bundleName": "com.example.myapplication", "vendor": "example", "version": { - "code": 1, - "name": "1.0" + "code": 1, + "name": "1.0" }, "apiVersion": { - "compatible": 4, - "target": 5, - "releaseType": "Beta1" + "compatible": 4, + "target": 5, + "releaseType": "Beta1" } - } +} ``` ### deviceConfig对象的内部结构 @@ -187,24 +187,24 @@ deviceConfig示例: ```json "deviceConfig": { - "default": { - "process": "com.example.test.example", - "supportBackup": false, - "network": { - "cleartextTraffic": true, - "securityConfig": { - "domainSettings": { - "cleartextPermitted": true, - "domains": [ - { - "subdomains": true, - "name": "example.ohos.com" - } - ] - } - } - } - } + "default": { + "process": "com.example.test.example", + "supportBackup": false, + "network": { + "cleartextTraffic": true, + "securityConfig": { + "domainSettings": { + "cleartextPermitted": true, + "domains": [ + { + "subdomains": true, + "name": "example.ohos.com" + } + ] + } + } + } + } } ``` @@ -240,33 +240,33 @@ module示例: ```json "module": { - "mainAbility": "MainAbility", - "package": "com.example.myapplication.entry", - "name": ".MyOHOSAbilityPackage", - "description": "$string:description_application", - "supportModes": [ - "drive" - ], - "deviceType": [ - "car" - ], - "distro": { - "moduleName": "ohos_entry", - "moduleType": "entry" - }, - "abilities": [ - ... - ], - "shortcuts": [ - ... - ], - "js": [ - ... - ], - "reqPermissions": [ - ... - ], - "colorMode": "light" + "mainAbility": "MainAbility", + "package": "com.example.myapplication.entry", + "name": ".MyOHOSAbilityPackage", + "description": "$string:description_application", + "supportModes": [ + "drive" + ], + "deviceType": [ + "car" + ], + "distro": { + "moduleName": "ohos_entry", + "moduleType": "entry" + }, + "abilities": [ + ... + ], + "shortcuts": [ + ... + ], + "js": [ + ... + ], + "reqPermissions": [ + ... + ], + "colorMode": "light" } ``` @@ -283,9 +283,9 @@ distro示例: ```json "distro": { - "moduleName": "ohos_entry", - "moduleType": "entry", - "installationFree": true, + "moduleName": "ohos_entry", + "moduleType": "entry", + "installationFree": true, "deliveryWithInstall": true } ``` @@ -398,8 +398,7 @@ abilities示例: "label": "$media:example", "launchType": "standard", "orientation": "unspecified", - "permissions": [ - ], + "permissions": [], "visible": true, "skills": [ { @@ -488,13 +487,13 @@ skills示例: ], "uris": [ { - "scheme": "http", - "host": "www.example.com", - "port": "8080", - "path": "query/student/name", - "type": "text/*" - } - ] + "scheme": "http", + "host": "www.example.com", + "port": "8080", + "path": "query/student/name", + "type": "text/*" + } + ] } ] ``` @@ -750,18 +749,18 @@ commonEvents示例: ```json "commonEvents": [ - { - "name":"MainAbility", - "permission": "string", - "data":[ - "string", - "string" - ], - "events": [ - "string", - "string" - ] - } + { + "name":"MainAbility", + "permission": "string", + "data":[ + "string", + "string" + ], + "events": [ + "string", + "string" + ] + } ] ``` @@ -774,8 +773,8 @@ commonEvents示例: ```json "testRunner": { - "name": "myTestRUnnerName", - "srcPath": "etc/test/TestRunner.ts" + "name": "myTestRUnnerName", + "srcPath": "etc/test/TestRunner.ts" } ``` diff --git a/zh-cn/application-dev/quick-start/stage-structure.md b/zh-cn/application-dev/quick-start/stage-structure.md index fa0d4c77126afc4024d8050ef8ca09f731f92823..8737110a4268579c1444180187d8e4d5b2c2fb8c 100644 --- a/zh-cn/application-dev/quick-start/stage-structure.md +++ b/zh-cn/application-dev/quick-start/stage-structure.md @@ -21,7 +21,7 @@ app.json示例: ```json { - "app": { + "app": { "bundleName": "com.application.music", "vendor": "application", "versionCode": 1, @@ -233,13 +233,13 @@ deviceTypes示例 : ```json { - "module": { - "name": "myHapName", + "module": { + "name": "myHapName", "type": "har", "deviceTypes" : [ "wearable" ] - } + } } ``` @@ -604,7 +604,7 @@ form示例 : "supportDimensions": [ "2*2" ], - "metadata": [ + "metadata": [ { "name": "string", "value": "string", @@ -620,18 +620,14 @@ form示例 : ```json { - "extensionAbilities": [ - { - "name": "MyForm", - "type": "form", - "metadata": [ - { - "name": "ohos.extability.form", - "resource": "$profile:form_config", - } - ], - } - ] + "extensionAbilities": [{ + "name": "MyForm", + "type": "form", + "metadata": [{ + "name": "ohos.extability.form", + "resource": "$profile:form_config" + }] + }] } ``` @@ -656,19 +652,15 @@ metadata中指定shortcut信息,其中 : ```json { - "shortcuts": [ - { - "shortcutId": "id_test1", - "label": "$string:shortcut", - "icon": "$media:aa_icon", - "wants": [ - { - "bundleName": "com.ohos.hello" - "abilityName": "MainAbility" - } - ] - } - ] + "shortcuts": [{ + "shortcutId": "id_test1", + "label": "$string:shortcut", + "icon": "$media:aa_icon", + "wants": [{ + "bundleName": "com.ohos.hello", + "abilityName": "MainAbility" + }] + }] } ``` @@ -678,23 +670,19 @@ metadata中指定shortcut信息,其中 : { "module": { "name": "MyAbilityStage", - "abilities" : [ - { - "name" : "MyAbility", - "srcEntrance": "./abilities/MyAbility.ts", - "skills": [{ - "actions": ["action.system.home"], - "entities": ["entity.system.home"], - "uris": [] - }], - "metadata": [ - { - "name": "ohos.ability.shortcuts", - "resource": "$profile:shortcuts_config", - } - ], - } - ] + "abilities": [{ + "name": "MyAbility", + "srcEntrance": "./abilities/MyAbility.ts", + "skills": [{ + "actions": ["action.system.home"], + "entities": ["entity.system.home"], + "uris": [] + }], + "metadata": [{ + "name": "ohos.ability.shortcuts", + "resource": "$profile:shortcuts_config" + }] + }] } } ``` @@ -721,20 +709,18 @@ metadata中指定commonEvent信息,其中 : ```json { - "commonEvents": [ - { - "name": "abilityName", - "permission": "string", - "types": [ - "string", - "string" - ], - "events": [ - "string", - "string" - ] - } - ] + "commonEvents": [{ + "name": "abilityName", + "permission": "string", + "types": [ + "string", + "string" + ], + "events": [ + "string", + "string" + ] + }] } ``` @@ -746,12 +732,10 @@ metadata中指定commonEvent信息,其中 : "name": "mySubscriber", "srcEntrance": "./extension/my_subscriber.js", "type": "staticSubscriber", - "metadata": [ - { - "name": "ohos.extability.staticSubscriber", - "resource": "$profile:common_event_config", - } - ], + "metadata": [{ + "name": "ohos.extability.staticSubscriber", + "resource": "$profile:common_event_config", + }], } ] ``` @@ -814,17 +798,17 @@ distroFilter示例 : ```json "distroFilter": [ { - "apiVersion": { + "apiVersion": { "policy": "include", - "value": [4,5] + "value": [4, 5] }, "screenShape": { "policy": "include", - "value": ["circle","rect"] + "value": ["circle", "rect"] }, "screenWindow": { "policy": "include", - "value": ["454*454","466*466"] + "value": ["454*454", "466*466"] } } ] @@ -837,16 +821,13 @@ distroFilter示例 : { "name": "mySubscriber", "srcEntrance": "./extension/my_subscriber.js", - "type": "staticSubscriber", - "metadata": [ - { - "name": "ohos.extability.staticSubscriber", - "resource": "$profile:distroFilter_config", - } - ], + "type": "staticSubscriber", + "metadata": [{ + "name": "ohos.extability.staticSubscriber", + "resource": "$profile:distroFilter_config", + }], } ] - ``` #### testRunner对象内部结构 @@ -858,8 +839,8 @@ distroFilter示例 : ``` "testRunner": { - "name": "myTestRUnnerName", - "srcPath": "etc/test/TestRunner.ts" + "name": "myTestRUnnerName", + "srcPath": "etc/test/TestRunner.ts" } ``` diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 8e6dabf42b28cf0356ff5da89fc323726230d1ae..d24734b0ed201f1513e75aa34f834fb6b895fb1a 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -81,6 +81,7 @@ - 图形图像 - [@ohos.display (屏幕属性)](js-apis-display.md) + - [@ohos.effectKit (图像效果)](js-apis-effectKit.md) - [@ohos.screenshot (屏幕截图)](js-apis-screenshot.md) - [@ohos.window (窗口)](js-apis-window.md) - [webgl (WebGL)](js-apis-webgl.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md index 8fa93687925ff86f9506920b6849794a0dd664b7..e05c5ac1924da1c611a2971d80d3820877546f51 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-Bundle.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle.md @@ -8,7 +8,7 @@ > API9 当前为Canary版本,仅供试用,不保证接口可稳定调用。 ## 导入模块 -``` +```js import bundle from '@ohos.bundle'; ``` @@ -69,8 +69,6 @@ bundle.getApplicationInfo(bundleName, bundleFlags, userId) }) ``` - - ## bundle.getApplicationInfo getApplicationInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback\): void @@ -109,7 +107,6 @@ bundle.getApplicationInfo(bundleName, bundleFlags, userId, (err, data) => { }) ``` - ## bundle.getApplicationInfo getApplicationInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback\): void @@ -146,7 +143,6 @@ bundle.getApplicationInfo(bundleName, bundleFlags, (err, data) => { }) ``` - ## bundle.getAllBundleInfo getAllBundleInfo(bundleFlag: BundleFlag, userId?: number): Promise> @@ -187,8 +183,6 @@ bundle.getAllBundleInfo(bundleFlag, userId) }) ``` - - ## bundle.getAllBundleInfo getAllBundleInfo(bundleFlag: BundleFlag, callback: AsyncCallback>): void @@ -223,7 +217,6 @@ bundle.getAllBundleInfo(bundleFlag, (err, data) => { }) ``` - ## bundle.getAllBundleInfo getAllBundleInfo(bundleFlag: BundleFlag, userId: number, callback: AsyncCallback>): void @@ -260,8 +253,6 @@ bundle.getAllBundleInfo(bundleFlag, userId, (err, data) => { }) ``` - - ## bundle.getBundleInfo getBundleInfo(bundleName: string, bundleFlags: number, options?: BundleOptions): Promise\ @@ -306,8 +297,6 @@ bundle.getBundleInfo(bundleName, bundleFlags, options) }) ``` - - ## bundle.getBundleInfo getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback\): void diff --git a/zh-cn/application-dev/reference/apis/js-apis-Context.md b/zh-cn/application-dev/reference/apis/js-apis-Context.md index b2bc9f02d7d4e08663d0f20daf45fabbca0ea3c2..f85c67797499cb5968532c13f0a50412a06f5b3c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-Context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Context.md @@ -832,7 +832,7 @@ getAbilityInfo(callback: AsyncCallback\): void | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | -| callback | AsyncCallback\<[AbilityInfo](#abilityInfo)> | 是 | 回调函数,可以在回调函数中处理接口返回值,返回当前归属Ability详细信息。| +| callback | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | 是 | 回调函数,可以在回调函数中处理接口返回值,返回当前归属Ability详细信息。| **示例:** @@ -860,7 +860,7 @@ getAbilityInfo(): Promise\ | 类型 | 说明 | | --------------- | ------------------------- | -| Promise\<[AbilityInfo](#abilityInfo)> | 返回当前归属Ability详细信息。 | +| Promise\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | 返回当前归属Ability详细信息。 | **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md b/zh-cn/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md index e8a0380bda998e814a9e3732f1f7afffccff9914..66134b703f9e78f5781a2bd6eb9eb987d8385656 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-EnterpriseAdminExtensionAbility.md @@ -1,11 +1,15 @@ # EnterpriseAdminExtentionAbility -EnterpriseAdminExtentionAbility模块提供企业管理员应用扩展相关接口。 +本模块提供企业管理员应用拓展能力。 + +企业管理员应用需要存在一个EnterpriseAdminExtentionAbility并重写相关接口,以此具备模块提供的各项能力,比如接收由系统发送的该应用被激活或者去激活的通知。 > **说明:** > -> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> > 本模块接口仅可在Stage模型下使用。 + ## 导入模块 ```ts @@ -22,12 +26,12 @@ onAdminEnabled(): void **示例:** - ```ts +```ts export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { - onAdminEnabled() { - } + onAdminEnabled() { + } }; - ``` +``` ## EnterpriseAdminExtentionAbility.onAdminDisabled @@ -38,11 +42,10 @@ onAdminDisabled(): void **系统能力**:SystemCapability.Customation.EnterpriseDeviceManager **示例:** - - ```ts +```ts export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { - onAdminDisabled() { - } + onAdminDisabled() { + } }; - ``` \ No newline at end of file +``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md index 202e59a820efff15cb9cc21599f8fa6af5670ea5..af042fbd6f43103babce2fea8e620354d3fb547a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md +++ b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md @@ -68,6 +68,36 @@ promise.then(data => { }); ``` +### verifyAccessTokenSync9+ + +verifyAccessTokenSync(tokenID: number, permissionName: string): GrantStatus + +校验应用是否被授予权限,同步返回结果。 + +**系统能力:** SystemCapability.Security.AccessToken + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------- | ---- | ------------------------------------------ | +| tokenID | number | 是 | 要校验应用的身份标识。 | +| permissionName | string | 是 | 需要校验的权限名称。 | + +**返回值:** + +| 类型 | 说明 | +| :------------ | :---------------------------------- | +| [GrantStatus](#grantstatus) | 枚举实例,返回授权状态。 | + +**示例:** + +```js +var AtManager = abilityAccessCtrl.createAtManager(); +let tokenID = 0; +let data = verifyAccessTokenSync(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); +console.log(`data->${JSON.stringify(data)}`); +``` + ### grantUserGrantedPermission grantUserGrantedPermission(tokenID: number, permissionName: string, permissionFlag: number): Promise<number> diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md index 4b105bf5b338cd9dcac6f9cea8e021e08881f0db..fe90a7f82ece3a649a0d803391df1eec09697f6d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-Want.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-Want.md @@ -20,11 +20,26 @@ import Want from '@ohos.application.Want'; | ----------- | -------- | -------------------- | ---- | ------------------------------------------------------------ | | deviceId | 只读 | string | 否 | 表示运行指定Ability的设备ID。 | | bundleName | 只读 | string | 否 | 表示包描述。如果在Want中同时指定了BundleName和AbilityName,则Want可以直接匹配到指定的Ability。 | -| abilityName | 只读 | string | 否 | 表示待启动的Ability名称。如果在Want中该字段同时指定了package和AbilityName,则Want可以直接匹配到指定的Ability。 | +| abilityName | 只读 | string | 否 | 表示待启动的Ability名称。如果在Want中该字段同时指定了package和AbilityName,则Want可以直接匹配到指定的Ability。AbilityName需要在一个应用的范围内保证唯一。 | | uri | 只读 | string | 否 | 表示Uri描述。如果在Want中指定了Uri,则Want将匹配指定的Uri信息,包括scheme, schemeSpecificPart, authority和path信息。 | | type | 只读 | string | 否 | 表示MIME type类型描述,比如:"text/plain" 、 "image/*"等。 | | flags | 只读 | number | 否 | 表示处理Want的方式。默认传数字,具体参考:[flags说明](js-apis-featureAbility.md#flags说明)。 | | action | 只读 | string | 否 | 表示action选项描述。 | | parameters | 只读 | {[key: string]: any} | 否 | 表示WantParams描述,由开发者自行决定传入的键值对。默认会携带以下key值:
ohos.aafwk.callerPid 表示拉起方的pid。
ohos.aafwk.param.callerToken 表示拉起方的token。
ohos.aafwk.param.callerUid 表示发起方的uid。[Bundle](js-apis-Bundle.js)模块中userId参数,可用于获取应用信息、包信息等,具体参考:[Bundle](js-apis-Bundle.js)。 | | entities | 只读 | Array\ | 否 | 表示entities相关描述。 | -| moduleName9+ | 只读 | string | 否 | 表示待启动的Ability所属的模块(module)。同一应用的不同hap的组件可能重名,仅通过BundleName和AbilityName无法区分时,可以通过设置moduleName加以区分,以匹配到指定的Ability。 | | +| moduleName9+ | 只读 | string | 否 | 表示待启动的Ability所属的模块(module)。 | + +**示例:** + +``` js + var want = { + "deviceId": "", // deviceId为空表示本设备 + "bundleName": "com.extreme.test", + "abilityName": "MainAbility", + "moduleName": "entry" // moduleName非必选 + }; + this.context.startAbility(want, (error) => { + // 显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability + console.log("error.code = " + error.code) + }) +``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md b/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md index 4923e4f50d8d1d831cb17d2e02b0fa68c81e11fb..788cd46e34841047b0fdb0336d1fd486f4baf77a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bundle-ApplicationInfo.md @@ -1,12 +1,8 @@ # ApplicationInfo - - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 7 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 - - 应用程序信息 ## ApplicationInfo @@ -41,4 +37,4 @@ | entityType8+ | string | 是 | 否 | 应用程序的实体类型。 | | fingerprint9+ | string | 是 | 否 | 应用程序的签名证书指纹信息,即开发者申请的签名证书的sha256值。 | | appDistributionType9+ | string | 是 | 否 | 应用程序签名证书的分发类型,分为:app_gallery、enterprise、os_integration和crowdtesting。 | -| appProvisionType9+ | string | 是 | 否 | 应用程序签名证书文件的类型,分为debug和release两种类型。| \ No newline at end of file +| appProvisionType9+ | string | 是 | 否 | 应用程序签名证书文件的类型,分为debug和release两种类型。| diff --git a/zh-cn/application-dev/reference/apis/js-apis-bytrace.md b/zh-cn/application-dev/reference/apis/js-apis-bytrace.md index bc33bbf4e776a388e4e65c6dcf2354c457e73039..add046e1ff964c4f3d54cf4e5657f74a456b0c62 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-bytrace.md +++ b/zh-cn/application-dev/reference/apis/js-apis-bytrace.md @@ -6,15 +6,12 @@ > - 从API Version 8开始,该接口不再维护,推荐使用新接口[`@ohos.hiTraceMeter`](js-apis-hitracemeter.md)。 > - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 - ## 导入模块 -``` +```js import bytrace from '@ohos.bytrace'; ``` - - ## bytrace.startTrace startTrace(name: string, taskId: number, expectedTime?: number): void @@ -36,12 +33,11 @@ startTrace(name: string, taskId: number, expectedTime?: number): void **示例:** -``` +```js bytrace.startTrace("myTestFunc", 1); bytrace.startTrace("myTestFunc", 1, 5); // 从startTrace到finishTrace流程的期望耗时为5ms ``` - ## bytrace.finishTrace finishTrace(name: string, taskId: number): void @@ -62,7 +58,7 @@ finishTrace(name: string, taskId: number): void **示例:** -``` +```js bytrace.finishTrace("myTestFunc", 1); ``` @@ -88,7 +84,6 @@ bytrace.startTrace("myTestFunc", 1); // 第二个跟踪任务开始,同名 bytrace.finishTrace("myTestFunc", 1); ``` - ## bytrace.traceByValue traceByValue(name: string, count: number): void @@ -105,7 +100,7 @@ traceByValue(name: string, count: number): void **示例:** -``` +```js let traceCount = 3; bytrace.traceByValue("myTestCount", traceCount); traceCount = 4; diff --git a/zh-cn/application-dev/reference/apis/js-apis-display.md b/zh-cn/application-dev/reference/apis/js-apis-display.md index 0ed0b419ae6660221d7485a8fdc838ca45dd9804..a0512d075e978281605477d13f402967fcb043b3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-display.md +++ b/zh-cn/application-dev/reference/apis/js-apis-display.md @@ -185,7 +185,7 @@ on(type: 'add'|'remove'|'change', callback: Callback<number>): void **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| type | string | 是 | 监听事件。
- type为"add",表示增加显示设备事件。
- type为"remove",表示移除显示设备事件。
- type为"change",表示改变显示设备事件。 | +| type | string | 是 | 监听事件。
- type为"add",表示增加显示设备事件。
- type为"remove",表示移除显示设备事件。
- type为"change",表示改变显示设备事件。 | | callback | Callback<number> | 是 | 回调函数。返回监听到的显示设备的id。 | **示例:** @@ -208,7 +208,7 @@ off(type: 'add'|'remove'|'change', callback?: Callback<number>): void **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | - | type | string | 是 | 设置监听类型。
- type为"add",表示监听增加显示设备。
- type为"remove",表示监听移除显示设备。
- type为"change",表示监听改变显示设备。 | + | type | string | 是 | 监听事件。
- type为"add",表示增加显示设备事件。
- type为"remove",表示移除显示设备事件。
- type为"change",表示改变显示设备事件。 | | callback | Callback<number> | 否 | 回调函数。返回监听到的显示设备的id。 | **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md new file mode 100755 index 0000000000000000000000000000000000000000..c231350a73495a1ac47f649f3171fafbee290044 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedMissionManager.md @@ -0,0 +1,371 @@ +# distributedMissionManager + +distributedMissionManager模块提供跨设备系统任务管理能力,包括注册系统任务状态监听、取消系统任务状态监听、开始同步远端任务列表、停止同步远端任务列表操作。 + +> **说明:** +> +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 + +## 导入模块 + +``` +import distributedMissionManager from '@ohos.distributedMissionManager' +``` + +## 权限列表 + +ohos.permission.MANAGE_MISSIONS + +## distributedMissionManager.registerMissionListener + +registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback, callback: AsyncCallback<void>): void; + +注册系统任务状态监听,以回调函数的方式返回。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | parameter | MissionDeviceInfo | 是 | 注册监听设备信息。 | + | options | MissionCallback | 是 | 注册的回调方法。 | + | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | + +**示例:** + + ```ts + function NotifyMissionsChanged(deviceId) { + console.log('NotifyMissionsChanged deviceId ' + JSON.stringify(deviceId)); + } + function NotifySnapshot(deviceId, missionId) { + console.log('NotifySnapshot deviceId ' + JSON.stringify(deviceId)); + console.log('NotifySnapshot missionId ' + JSON.stringify(missionId)); + } + function NotifyNetDisconnect(deviceId, state) { + console.log('NotifyNetDisconnect deviceId ' + JSON.stringify(deviceId)); + console.log('NotifyNetDisconnect state ' + JSON.stringify(state)); + } + var parameter = { + deviceId: remoteDeviceId + }; + var options = { + notifyMissionsChanged: NotifyMissionsChanged, + notifySnapshot: NotifySnapshot, + notifyNetDisconnect: NotifyNetDisconnect + } + distributedMissionManager.registerMissionListener(parameter, options, (error) => { + console.log("error.code = " + error.code) + }) + ``` +## distributedMissionManager.registerMissionListener + +registerMissionListener(parameter: MissionDeviceInfo, options: MissionCallback): Promise<void> + +注册系统任务状态监听,以promise的方式返回。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | parameter | MissionDeviceInfo | 是 | 设备信息。 | + | options | MissionCallback | 是 | 注册的回调方法。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | Promise<void> | promise方式返回执行结果。 | + +**示例:** + + ```ts + function NotifyMissionsChanged(deviceId) { + console.log('NotifyMissionsChanged deviceId ' + JSON.stringify(deviceId)); + } + function NotifySnapshot(deviceId, missionId) { + console.log('NotifySnapshot deviceId ' + JSON.stringify(deviceId)); + console.log('NotifySnapshot missionId ' + JSON.stringify(missionId)); + } + function NotifyNetDisconnect(deviceId, state) { + console.log('NotifyNetDisconnect deviceId ' + JSON.stringify(deviceId)); + console.log('NotifyNetDisconnect state ' + JSON.stringify(state)); + } + var parameter = { + deviceId: remoteDeviceId + }; + var options = { + notifyMissionsChanged: NotifyMissionsChanged, + notifySnapshot: NotifySnapshot, + notifyNetDisconnect: NotifyNetDisconnect + } + distributedMissionManager.registerMissionListener(parameter, options) + .then(data => { + console.info('success data is ' + data); + }).catch(error => { + console.info('error error is ' + error); + }) + ``` + + +## distributedMissionManager.unregisterMissionListener + +unregisterMissionListener(parameter: MissionDeviceInfo, callback: AsyncCallback<void>): void; + +取消任务状态监听, 以回调函数的方式返回。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | + | parameter | MissionDeviceInfo | 是 | 设备信息。 | + | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | + +**示例:** + + ```ts + var parameter = { + deviceId: remoteDeviceId + }; + distributedMissionManager.unregisterMissionListener(parameter, (error) => { + console.log("error.code = " + error.code) + }) + ``` + + +## distributedMissionManager.unregisterMissionListener + +unregisterMissionListener(parameter: MissionDeviceInfo): Promise<void> + +取消任务状态监听,以promise方式返回执行结果。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | parameter | MissionDeviceInfo | 是 | 设备信息。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | Promise<void> | promise方式返回执行结果。 | + +**示例:** + + ```ts + var parameter = { + deviceId: remoteDeviceId + }; + distributedMissionManager.unregisterMissionListener(parameter) + .then(data => { + console.info('success data is ' + data); + }).catch(error => { + console.info('error error is ' + error); + }) + ``` + +## distributedMissionManager.startSyncRemoteMissions + +startSyncRemoteMissions(parameter: MissionParameter, callback: AsyncCallback<void>): void; + +开始同步远端任务列表, 以回调函数的方式返回。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | + | parameter | MissionParameter | 是 | 同步信息。 | + | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | + +**示例:** + + ```ts + var parameter = { + deviceId: remoteDeviceId, + fixConflict: false, + tag: 0 + }; + distributedMissionManager.startSyncRemoteMissions(parameter, (error) => { + console.log("error.code = " + error.code) + }) + ``` + +## distributedMissionManager.startSyncRemoteMissions + +startSyncRemoteMissions(parameter: MissionParameter): Promise<void> + +开始同步远端任务列表,以promise方式返回执行结果。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | parameter | MissionParameter | 是 | 同步信息。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | Promise<void> | promise方式返回执行结果。 | + +**示例:** + + ```ts + var parameter = { + deviceId: remoteDeviceId, + fixConflict: false, + tag: 0 + }; + distributedMissionManager.startSyncRemoteMissions(parameter) + .then(data => { + console.info('success data is ' + data); + }).catch(error => { + console.info('error error is ' + error); + }) + ``` + +## distributedMissionManager.stopSyncRemoteMissions + +stopSyncRemoteMissions(parameter: MissionDeviceInfo, callback: AsyncCallback<void>): void; + +停止同步远端任务列表, 以回调函数的方式返回。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | listenerId | number | 是 | 系统任务状态监听方法的index值,和监听方法一一对应,由registerMissionListener方法返回。 | + | parameter | MissionDeviceInfo | 是 | 同步信息。 | + | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 | + +**示例:** + + ```ts + var parameter = { + deviceId: remoteDeviceId + }; + distributedMissionManager.stopSyncRemoteMissions(parameter, (error) => { + console.log("error.code = " + error.code) + }) + ``` + +## distributedMissionManager.stopSyncRemoteMissions + +stopSyncRemoteMissions(parameter: MissionDeviceInfo): Promise<void> + +停止同步远端任务列表,以promise方式返回执行结果。 + +**需要权限**:ohos.permission.MANAGE_MISSIONS + +**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | -------- | -------- | -------- | -------- | + | parameter | MissionDeviceInfo | 是 | 同步信息。 | + +**返回值:** + + | 类型 | 说明 | + | -------- | -------- | + | Promise<void> | promise方式返回执行结果。 | + +**示例:** + + ```ts + var parameter = { + deviceId: remoteDeviceId + }; + distributedMissionManager.stopSyncRemoteMissions(parameter) + .then(data => { + console.info('success data is ' + data); + }).catch(error => { + console.info('error error is ' + error); + }) + ``` + +## MissionCallback + +表示开始同步后,建立的回调函数。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| -------- | -------- | -------- | -------- | -------- | +| notifyMissionsChanged | function | 是 | 否 | 通知任务变化,返回设备ID。| +| notifySnapshot | function | 是 | 否 | 通知快照变化,返回设备ID,任务ID | +| notifyNetDisconnect | function | 是 | 否 | 通知断开连接,返回设备ID,网络状态 | + +## MissionParameter + +表示同步时所需参数的枚举。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +| 名称 | 参数类型 | 可读 | 可写 | 说明 | +| -------- | -------- | -------- | -------- | -------- | +| deviceId | string | 是 | 是 | 表示设备ID。| +| fixConflict | boolean | 是 | 是 | 表示是否存在版本冲突。 | +| tag | number | 是 | 是 | 表示特定的标签。 | + +## MissionDeviceInfo + +表示注册监听时所需参数的枚举。 + +**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Mission + +**系统API**: 此接口为系统接口,三方应用不支持调用。 + +| 名称 | 参数类型 | 可读 | 可写 | 说明 | +| -------- | -------- | -------- | -------- | -------- | +| deviceId | string | 是 | 是 | 表示设备ID。| \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-effectKit.md b/zh-cn/application-dev/reference/apis/js-apis-effectKit.md index 091d8e2d84a386e0da518c8e8a317647b32367a8..b9524a5c74feb553d0cee49a6c549973388b0d65 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-effectKit.md +++ b/zh-cn/application-dev/reference/apis/js-apis-effectKit.md @@ -5,6 +5,7 @@ 该模块提供以下图像效果相关的常用功能: - [Filter](#filter):效果链。 +- [Color](#color):颜色类,用于保存取色的结果。 - [ColorPicker](#colorpicker):智能取色器。 > **说明:** @@ -52,7 +53,7 @@ image.createPixelMap(color, opts) createColorPicker(source: image.PixelMap): Promise\ -通过属性创建PixelMap,使用Promise异步回调。 +通过传入的PixelMap创建ColorPicker实例,使用Promise异步回调。 **系统能力:** SystemCapability.Multimedia.Image.Core @@ -60,13 +61,13 @@ createColorPicker(source: image.PixelMap): Promise\ | 名称 | 类型 | 必填 | 说明 | | -------- | ----------- | ---- | -------------------------- | -| source | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 | image模块创建的PixelMap实例 | +| source | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 | image模块创建的PixelMap实例。 | **返回值:** | 类型 | 说明 | | ---------------------- | -------------- | -| Promisse\<[ColorPicker](#colorpicker)> | Promise对象。返回当前创建的子窗口对象。 | +| Promisse\<[ColorPicker](#colorpicker)> | Promise对象。返回创建的ColorPicker实例。 | **示例:** @@ -87,7 +88,7 @@ image.createPixelMap(color, opts, (pixelmap) => { createColorPicker(source: image.PixelMap, callback: AsyncCallback\): void -通过属性创建PixelMap,使用callback异步回调。 +通过传入的PixelMap创建ColorPicker实例,使用callback异步回调。 **系统能力:** SystemCapability.Multimedia.Image.Core @@ -95,8 +96,8 @@ createColorPicker(source: image.PixelMap, callback: AsyncCallback\) | 名称 | 类型 | 必填 | 说明 | | -------- | ------------------ | ---- | -------------------------- | -| source | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 | BGRA_8888格式的颜色数组。 | -| callback | AsyncCallback\<[ColorPicker](#colorpicker)> | 是 | 回调函数,返回ColorPicker。 | +| source | [image.PixelMap](js-apis-image.md#pixelmap7) | 是 |image模块创建的PixelMap实例。 | +| callback | AsyncCallback\<[ColorPicker](#colorpicker)> | 是 | 回调函数。返回创建的ColorPicker实例。 | **示例:** @@ -107,9 +108,9 @@ let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } } image.createPixelMap(color, opts, (pixelmap) => { effectKit.createColorPicker(pixelMap, (error, colorPicker) ) { if(error) { - console.log('create color picker failed.'); + console.log('Failed to create color picker.'); } else { - console.log('create color picker succeeded.'); + console.log('Succeeded in creating color picker.'); } }) }) @@ -144,16 +145,16 @@ getMainColor(): Promise\ | 类型 | 说明 | | :------------- | :---------------------------------------------- | -| Promise\<[Color](#color)> | Promise实例,用于获取结果,失败时返回错误信息。 | +| Promise\<[Color](#color)> | Promise对象。返回图像主色对应的颜色值,失败时返回错误信息。 | **示例:** ```js colorPicker.getMainColor().then(color => { - console.log('get main color succeeded.') + console.log('Succeeded in getting main color.') console.info("color[ARGB]=" + color.alpha "," + color.red + "," + color.green + "," + color.blue); }).catch(error => { - console.log('get main color failed.'); + console.log('Failed to get main color.'); }) ``` @@ -169,7 +170,7 @@ getMainColorSync(): Color | 类型 | 说明 | | :------- | :----------------------------------- | -| [Color](#color) | Color实例,用于获取结果,失败时返回null。 | +| [Color](#color) | Color实例,即图像主色对应的颜色值,失败时返回null。 | **示例:** @@ -266,7 +267,7 @@ grayscale(): Filter | 类型 | 说明 | | :------------- | :---------------------------------------------- | -| Filter | 返回效果链表头。 | +| [Filter](#filter) | 返回效果链表头。 | **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md index 1a739fc62a470747d7dac9b9735c4cd74a584ce3..b7ed9ce4c281078c60be84474c62aecabf80cae3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-enterprise-device-manager.md @@ -1,17 +1,17 @@ # 企业设备管理 +本模块提供企业设备管理能力,使设备具备企业场景下所需的定制能力。 + > **说明:** -> +> > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 - ## 导入模块 ```js import enterpriseDeviceManager from '@ohos.enterpriseDeviceManager'; ``` - ## enterpriseDeviceManager.enableAdmin enableAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, userId?: number, callback: AsyncCallback\): void @@ -26,24 +26,24 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| -------------- | ----------------------------------- | ---- | ----------------------------------------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | -| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | -| type | [AdminType](#AdminType) | 是 | 激活的设备管理员类型 | +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ----------------------------------- | --- | ---------------------------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | +| type | [AdminType](#AdminType) | 是 | 激活的设备管理员类型 | | userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | -| callback | AsyncCallback\ | 是 | callback方式返回是否激活成功 | +| callback | AsyncCallback\ | 是 | callback方式返回是否激活成功 | **示例**: ```js let wantTemp = { - bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", }; let enterpriseInfo = { - name: "enterprise name", - description: "enterprise description" + name: "enterprise name", + description: "enterprise description" } enterpriseDeviceManager.enableAdmin(wantTemp, enterpriseInfo, enterpriseDeviceManager.AdminType.ADMIN_TYPE_NORMAL, 100, (error, result) => { if (error != null) { @@ -68,11 +68,11 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| -------------- | ----------------------------------- | ---- | ----------------------------------------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | -| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | -| type | [AdminType](#AdminType) | 是 | 激活的设备管理员类型 | +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ----------------------------------- | --- | ---------------------------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | +| type | [AdminType](#AdminType) | 是 | 激活的设备管理员类型 | | userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | **返回值:** @@ -85,18 +85,18 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let wantTemp = { - bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", }; let enterpriseInfo = { - name: "enterprise name", - description: "enterprise description" + name: "enterprise name", + description: "enterprise description" } enterpriseDeviceManager.enableAdmin(wantTemp, enterpriseInfo, enterpriseDeviceManager.AdminType.ADMIN_TYPE_NORMAL, 100) .then((result) => { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -114,18 +114,18 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------- | ---- | ----------------------------------------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 普通设备管理员应用 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | --- | ---------------------------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 普通设备管理员应用 | | userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | -| callback | AsyncCallback\ | 是 | callback方式返回是否去激活成功 | +| callback | AsyncCallback\ | 是 | callback方式返回是否去激活成功 | **示例**: ```js let wantTemp = { - bundleName: "bundleName", - abilityName: "abilityName", + bundleName: "bundleName", + abilityName: "abilityName", }; enterpriseDeviceManager.disableAdmin(wantTemp, 100, (error, result) => { if (error != null) { @@ -136,8 +136,6 @@ enterpriseDeviceManager.disableAdmin(wantTemp, 100, (error, result) => { }); ``` - - ## enterpriseDeviceManager.disableAdmin disableAdmin(admin: Want, userId?: number): Promise\ @@ -152,9 +150,9 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------------------------------- | ---- | ----------------------------------------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 普通设备管理员应用 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------------- | --- | ---------------------------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 普通设备管理员应用 | | userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | **返回值:** @@ -167,13 +165,13 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let wantTemp = { - bundleName: "bundleName", - abilityName: "abilityName", + bundleName: "bundleName", + abilityName: "abilityName", }; enterpriseDeviceManager.disableAdmin(wantTemp, 100).then((result) => { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -188,10 +186,10 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| ---------- | ----------------------- | ---- | ------------------- | -| bundleName | String | 是 | 超级设备管理员应用的包名 | -| callback | AsyncCallback\ | 是 | callback方式返回是否去激活成功 | +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ----------------------- | --- | ------------------- | +| bundleName | String | 是 | 超级设备管理员应用的包名 | +| callback | AsyncCallback\ | 是 | callback方式返回是否去激活成功 | **示例**: @@ -217,9 +215,9 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| ---------- | ------ | ---- | ------------ | -| bundleName | String | 是 | 超级设备管理员应用的包名 | +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------ | --- | ------------ | +| bundleName | String | 是 | 超级设备管理员应用的包名 | **返回值:** @@ -232,9 +230,9 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let bundleName = "com.example.myapplication"; enterpriseDeviceManager.disableSuperAdmin(bundleName).then((result) => { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -249,18 +247,18 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------- | ---- | ----------------------------------------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------- | --- | ---------------------------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | | userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | -| callback | AsyncCallback\ | 是 | callback方式返回是否处于激活状态 | +| callback | AsyncCallback\ | 是 | callback方式返回是否处于激活状态 | **示例**: ```js let wantTemp = { - bundleName: "bundleName", - abilityName: "abilityName", + bundleName: "bundleName", + abilityName: "abilityName", }; enterpriseDeviceManager.isAdminEnabled(wantTemp, 100, (error, result) => { if (error != null) { @@ -271,8 +269,6 @@ enterpriseDeviceManager.isAdminEnabled(wantTemp, 100, (error, result) => { }); ``` - - ## enterpriseDeviceManager.isAdminEnabled isAdminEnabled(admin: Want, userId?: number): Promise\ @@ -284,9 +280,9 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------------------------------- | ---- | ----------------------------------------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------------- | --- | ---------------------------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | | userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 | **返回值:** @@ -299,13 +295,13 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let wantTemp = { - bundleName: "bundleName", - abilityName: "abilityName", + bundleName: "bundleName", + abilityName: "abilityName", }; enterpriseDeviceManager.isAdminEnabled(wantTemp, 100).then((result) => { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -320,10 +316,10 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| ---------- | ----------------------- | ---- | -------------------- | -| bundleName | String | 是 | 设备管理员应用 | -| callback | AsyncCallback\ | 是 | callback方式返回是否处于激活状态 | +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ----------------------- | --- | -------------------- | +| bundleName | String | 是 | 设备管理员应用 | +| callback | AsyncCallback\ | 是 | callback方式返回是否处于激活状态 | **示例**: @@ -338,8 +334,6 @@ enterpriseDeviceManager.isSuperAdmin(bundleName, (error, result) => { }); ``` - - ## enterpriseDeviceManager.isSuperAdmin isSuperAdmin(bundleName: String): Promise\ @@ -351,9 +345,9 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数**: -| 参数名 | 类型 | 必填 | 说明 | -| ---------- | ------ | ---- | --------- | -| bundleName | String | 是 | 超级设备管理员应用 | +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------ | --- | --------- | +| bundleName | String | 是 | 超级设备管理员应用 | **返回值:** @@ -366,9 +360,9 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let bundleName = "com.example.myapplication"; enterpriseDeviceManager.isSuperAdmin(bundleName).then((result) => { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -383,16 +377,16 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------- | ---- | ----------------------------------- | -| callback | AsyncCallback { if (error != null) { @@ -409,7 +403,6 @@ enterpriseDeviceManager.getDeviceSettingsManager((error, mgr) => { }); ``` - ## enterpriseDeviceManager.getDeviceSettingsManager getDeviceSettingsManager(): Promise<DeviceSettingsManager> @@ -429,8 +422,8 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let wantTemp = { - bundleName: "bundleName", - abilityName: "abilityName", + bundleName: "bundleName", + abilityName: "abilityName", }; mgr.getDeviceSettingsManager().then((mgr) => { mgr.setDateTime(wantTemp, 1526003846000).then((value) => { @@ -454,32 +447,31 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------------- | ----------------------------------- | ---- | ---------------------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | -| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | -| callback | AsyncCallback\ { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` - ## enterpriseDeviceManager.setEnterpriseInfo setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo): Promise<boolean> @@ -491,10 +483,10 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------------- | ----------------------------------- | ---- | ------------ | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | -| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | +| 参数名 | 类型 | 必填 | 说明 | +| -------------- | ----------------------------------- | --- | ------------ | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| enterpriseInfo | [EnterpriseInfo](#EnterpriseInfo) | 是 | 设备管理员应用的企业信息 | **返回值:** @@ -506,18 +498,18 @@ SystemCapability.Customation.EnterpriseDeviceManager ```js let wantTemp = { - bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", }; let enterpriseInfo = { - name: "enterprise name", - description: "enterprise description" + name: "enterprise name", + description: "enterprise description" } enterpriseDeviceManager.setEnterpriseInfo(wantTemp, enterpriseInfo) .then((result) => { - console.log("result is " + result); + console.log("result is " + result); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -532,17 +524,17 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------- | ---- | ------------------------ | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | -| callback | AsyncCallback<[EnterpriseInfo](#EnterpriseInfo)> | 是 | callback方式返回设备管理员应用的企业信息 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------ | --- | ------------------------ | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| callback | AsyncCallback<[EnterpriseInfo](#EnterpriseInfo)> | 是 | callback方式返回设备管理员应用的企业信息 | **示例:** ```js let wantTemp = { - bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", }; enterpriseDeviceManager.getEnterpriseInfo(wantTemp, (error, result) => { if (error != null) { @@ -550,11 +542,10 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp, (error, result) => { return; } console.log(result.name); - console.log(result.description); + console.log(result.description); }); ``` - ## enterpriseDeviceManager.getEnterpriseInfo getEnterpriseInfo(admin: Want): Promise<EnterpriseInfo> @@ -566,28 +557,28 @@ SystemCapability.Customation.EnterpriseDeviceManager **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ----- | ----------------------------------- | ---- | ------- | -| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ----------------------------------- | --- | ------- | +| admin | [Want](js-apis-application-Want.md) | 是 | 设备管理员应用 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ------------------------- | +| 类型 | 说明 | +| ------------------------------------------------ | ------------------------- | | Promise<[EnterpriseInfo](#EnterpriseInfo)> | Promise方式返回设备管理员应用的企业信息对象 | **示例:** ```js let wantTemp = { - bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", }; enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => { - console.log(result.name); - console.log(result.description); + console.log(result.name); + console.log(result.description); }).catch(error => { - console.log("error occurs" + error); + console.log("error occurs" + error); }); ``` @@ -602,7 +593,6 @@ enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => { | name | 只读 | string | 是 | 表示设备管理员应用所属企业的名称。 | | description | 只读 | string | 是 | 表示设备管理员应用所属企业的描述。 | - ## AdminType 设备管理员应用的管理员类型。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-environment.md b/zh-cn/application-dev/reference/apis/js-apis-environment.md index 518975f8f7ec926a05b0680098d47738fd28d658..768e6c876aa8382bdbee09ce92dc88fe8ce831ec 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-environment.md +++ b/zh-cn/application-dev/reference/apis/js-apis-environment.md @@ -1,12 +1,12 @@ # 目录环境能力 +该模块提供环境目录能力,获取内存存储根目录、公共文件根目录的JS接口。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > - 本模块接口为系统接口,三方应用不支持调用。 -该模块提供环境目录能力,获取内存存储根目录、公共文件根目录的JS接口。 - ## 导入模块 ```js diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileio.md b/zh-cn/application-dev/reference/apis/js-apis-fileio.md index 2d52179b8c0a66d96ced30e62c79a61acd76a947..35502aad72d8abbfc3a62731b62956420db5880b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileio.md @@ -1,9 +1,10 @@ # 文件管理 +该模块提供文件存储管理能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 -该模块提供文件存储管理能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。 ## 导入模块 diff --git a/zh-cn/application-dev/reference/apis/js-apis-filemanager.md b/zh-cn/application-dev/reference/apis/js-apis-filemanager.md index 576959692a7c8c86a319104c1e8c35ff2e3637d5..802d3d71d66bb58f8cf9e49f85d4d2f336453140 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-filemanager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-filemanager.md @@ -1,11 +1,12 @@ # 公共文件访问与管理 + +该模块提供公共文件访问和管理的服务接口,向下对接底层文件管理服务,如媒体库、外卡管理;向上对应用程序提供公共文件查询、创建的能力。 + >![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > >- 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 >- 本模块接口为系统接口,三方应用不支持调用,当前只支持filepicker调用。 -该模块提供公共文件访问和管理的服务接口,向下对接底层文件管理服务,如媒体库、外卡管理;向上对应用程序提供公共文件查询、创建的能力。 - ## 导入模块 ```js diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index fd968a55128df44627edb3d9009b0ec0952359d7..50438f8ed64fa045d2b4710ea1dcb5ff2df9e31d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1333,7 +1333,7 @@ videoPlayer.setSpeed(speed).then() => { selectBitrate(bitrate:number, callback: AsyncCallback\): void -通过回调方式设置码率。 +通过回调方式设置码率,通过[availableBitrateCollected](#on('availableBitrateCollected')9+)获取当前码流支持的Bitrate。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer @@ -1392,7 +1392,7 @@ videoPlayer.selectBitrate(bitrate).then() => { on(type: 'playbackCompleted', callback: Callback\): void -开始监听视频播放完成事件,通过[availableBitrateCollected](#on('availableBitrateCollected')9+)获取当前码流支持的Bitrate。 +开始监听视频播放完成事件。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer @@ -1521,7 +1521,7 @@ on(type: 'availableBitrateCollected', callback: (bitrates: Array) => voi | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | ---- | ------------------------------------------------------------ | | type | string | 是 | 视频播放码率上报事件回调类型,支持的事件:'availableBitrateCollected',只在开始播放时候上报一次 | -| callback | function | 是 | 视频播放码率事件回调方法,使用Array数组存放支持的码率。 | +| callback | function | 是 | 视频播放码率事件回调方法,使用数组存放支持的码率。 | **示例:** @@ -1875,7 +1875,7 @@ audioRecorder.prepare(); // pre ## AudioOutputFormat(deprecated) > **说明:** -> 从 API Version 8 开始废弃,建议使用[ContainerFormatType ](#containerformattype8)替代。 +> 从 API Version 8 开始废弃,建议使用[ContainerFormatType](#containerformattype8)替代。 表示音频封装格式的枚举。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-request.md b/zh-cn/application-dev/reference/apis/js-apis-request.md index deba3a6396d23276c8788d6788eeb8b170e2567f..75d6b4faa5586f948c01259d0d39fb90f7523f2f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-request.md +++ b/zh-cn/application-dev/reference/apis/js-apis-request.md @@ -1,5 +1,6 @@ # 上传下载 +request部件主要给应用提供上传下载文件、后台传输代理的基础能力。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 @@ -18,14 +19,16 @@ import request from '@ohos.request'; 默认支持https,如果要支持http,需要在config.json里增加network标签,属性标识 "cleartextTraffic": true。即: ``` +var config = { "deviceConfig": { "default": { "network": { "cleartextTraffic": true } - ... + //... } } +} ``` @@ -466,11 +469,10 @@ on(type: 'progress', callback:(receivedSize: number, totalSize: number) => vo **示例:** ```js - downloadTask.on('progress', function download_callback(receivedSize, totalSize) { + downloadTask.on('progress', function download_callback(receivedSize, totalSize) { console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize); } ); - }); ``` @@ -501,11 +503,10 @@ off(type: 'progress', callback?: (receivedSize: number, totalSize: number) => **示例:** ```js - downloadTask .off('progress', function download_callback(receivedSize, totalSize) { - console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize); - } + downloadTask .off('progress', function download_callback(receivedSize, totalSize) { + console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize); + } ); - }); ``` @@ -529,11 +530,10 @@ on(type: 'complete'|'pause'|'remove', callback:() => void): void **示例:** ```js - downloadTask.on('complete', function callback() { - console.info('Download task completed.'); - } + downloadTask.on('complete', function callback() { + console.info('Download task completed.'); + } ); - }); ``` @@ -557,11 +557,10 @@ off(type: 'complete'|'pause'|'remove', callback?:() => void): void **示例:** ```js - downloadTask.off('complete', function callback() { - console.info('Download task completed.'); - } + downloadTask.off('complete', function callback() { + console.info('Download task completed.'); + } ); - }); ``` @@ -591,11 +590,10 @@ on(type: 'fail', callback: (err: number) => void): void **示例:** ```js - downloadTask.on('fail', function callBack(err) { - console.info('Download task failed. Cause:' + err); - } + downloadTask.on('fail', function callBack(err) { + console.info('Download task failed. Cause:' + err); + } ); - }); ``` @@ -625,11 +623,10 @@ off(type: 'fail', callback?: (err: number) => void): void **示例:** ```js - downloadTask.off('fail', function callBack(err) { - console.info('Download task failed. Cause:' + err); - } + downloadTask.off('fail', function callBack(err) { + console.info('Download task failed. Cause:' + err); + } ); - }); ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md b/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md index 13a31f5ca0cfa14442f1d65351c6fbe565bc70d1..d46da1226a142fed8522cf4b10e8049107565668 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md @@ -238,6 +238,18 @@ resourceManager.getResourceManager((error, mgr) => { | offset | number | rawfile的起始偏移量 | | length | number | rawfile的文件长度 | +## Resource + +表示的资源信息。 + +**系统能力:** 以下各项对应的系统能力均为SystemCapability.Global.ResourceManager + +| 名称 | 类型 | 说明 | +| ------ | ------ | ------------------ | +| bundleName | string | 应用的bundle名称 | +| moduleName | string | 应用的module名称 | +| id | number | 资源的id值 | + ## ResourceManager @@ -307,6 +319,68 @@ getString(resId: number): Promise<string> ``` +### getString9+ + +getString(resource: Resource, callback: AsyncCallback<string>): void + +用户获取指定resource对象对应的字符串,使用callback形式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | --------------- | +| resource | [Resource](#resource) | 是 | 资源信息 | +| callback | AsyncCallback<string> | 是 | 异步回调,用于返回获取的字符串 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.string.test').id + }; + this.context.resourceManager.getString(resource, (error, value) => { + if (error != null) { + console.log("error is " + error); + } else { + let str = value; + } + }); + ``` + +### getString9+ + +getString(resource: Resource): Promise<string> + +用户获取指定resource对象对应的字符串,使用Promise形式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ----------- | +| Promise<string> | resource对象对应的字符串 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.string.test').id + }; + this.context.resourceManager.getString(resource).then(value => { + let str = value; + }).catch(error => { + console.log("getstring promise error is " + error); + }); + ``` + ### getStringArray getStringArray(resId: number, callback: AsyncCallback<Array<string>>): void @@ -364,6 +438,67 @@ getStringArray(resId: number): Promise<Array<string>> }); ``` +### getStringArray9+ + +getStringArray(resource: Resource, callback: AsyncCallback<Array<string>>): void + +用户获取指定resource对象对应的字符串数组,使用callback形式返回回字符串数组。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | --------------- | +| resource | [Resource](#resource) | 是 | 资源信息 | +| callback | AsyncCallback<Array<string>> | 是 | 异步回调,用于返回获取的字符串数组 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.strarray.test').id + }; + this.context.resourceManager.getStringArray(resource, (error, value) => { + if (error != null) { + console.log("error is " + error); + } else { + let strArray = value; + } + }); + ``` + +### getStringArray9+ + +getStringArray(resource: Resource): Promise<Array<string>> + +用户获取指定resource对象对应的字符串数组,使用Promise形式返回字符串数组。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ----------- | +| Promise<Array<string>> | resource对象对应的字符串数组 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.strarray.test').id + }; + this.context.resourceManager.getStringArray(resource).then(value => { + let strArray = value; + }).catch(error => { + console.log("getStringArray promise error is " + error); + }); + ``` ### getMedia @@ -422,6 +557,67 @@ getMedia(resId: number): Promise<Uint8Array> }); ``` +### getMedia9+ + +getMedia(resource: Resource, callback: AsyncCallback<Uint8Array>): void + +用户获取指定resource对象对应的媒体文件内容,使用callback形式返回字节数组。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | --------------- | +| resource | [Resource](#resource) | 是 | 资源信息 | +| callback | AsyncCallback<Uint8Array> | 是 | 异步回调,用于返回获取的媒体文件内容 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.media.test').id + }; + this.context.resourceManager.getMedia(resource, (error, value) => { + if (error != null) { + console.log("error is " + error); + } else { + let media = value; + } + }); + ``` + +### getMedia9+ + +getMedia(resource: Resource): Promise<Uint8Array> + +用户获取指定resource对象对应的媒体文件内容,使用Promise形式返回字节数组。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ----------- | +| Promise<Uint8Array> | resource对象对应的媒体文件内容 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.media.test').id + }; + this.context.resourceManager.getMedia(resource).then(value => { + let media = value; + }).catch(error => { + console.log("getMedia promise error is " + error); + }); + ``` ### getMediaBase64 @@ -480,6 +676,68 @@ getMediaBase64(resId: number): Promise<string> }); ``` +### getMediaBase649+ + +getMediaBase64(resource: Resource, callback: AsyncCallback<string>): void + +用户获取指定resource对象对应的图片资源Base64编码,使用callback形式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ------------------------ | +| resource | [Resource](#resource) | 是 | 资源信息 | +| callback | AsyncCallback<string> | 是 | 异步回调,用于返回获取的图片资源Base64编码 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.media.test').id + }; + this.context.resourceManager.getMediaBase64(resource, (error, value) => { + if (error != null) { + console.log("error is " + error); + } else { + let media = value; + } + }); + ``` + +### getMediaBase649+ + +getMediaBase64(resource: Resource): Promise<string> + +用户获取指定resource对象对应的图片资源Base64编码,使用Promise形式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | -------------------- | +| Promise<string> | resource对象对应的图片资源Base64编码 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.media.test').id + }; + this.context.resourceManager.getMediaBase64(resource).then(value => { + let media = value; + }).catch(error => { + console.log("getMediaBase64 promise error is " + error); + }); + ``` + ### getConfiguration @@ -648,6 +906,70 @@ getPluralString(resId: number, num: number): Promise<string> }); ``` +### getPluralString9+ + +getPluralString(resource: Resource, num: number, callback: AsyncCallback<string>): void + +根据指定数量获取指定resource对象表示的单复数字符串,使用callback形式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------- | ---- | ------------------------------- | +| resource | [Resource](#resource) | 是 | 资源信息 | +| num | number | 是 | 数量值 | +| callback | AsyncCallback<string> | 是 | 异步回调,返回根据指定数量获取指定resource对象表示的单复数字符串 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.plural.test').id + }; + this.context.resourceManager.getPluralString(resource, 1, (error, value) => { + if (error != null) { + console.log("error is " + error); + } else { + let str = value; + } + }); + ``` + +### getPluralString9+ + +getPluralString(resource: Resource, num: number): Promise<string> + +根据指定数量获取对指定resource对象表示的单复数字符串,使用Promise形式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | +| num | number | 是 | 数量值 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ------------------------- | +| Promise<string> | 根据提供的数量获取对应resource对象表示的单复数字符串 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.plural.test').id + }; + this.context.resourceManager.getPluralString(resource, 1).then(value => { + let str = value; + }).catch(error => { + console.log("getPluralString promise error is " + error); + }); + ``` + ### getRawFile8+ getRawFile(path: string, callback: AsyncCallback<Uint8Array>): void @@ -1118,6 +1440,34 @@ getStringSync(resId: number): string resourceManager.getStringSync($r('app.string.test').id); ``` +### getStringSync9+ + +getStringSync(resource: Resource): string + +用户获取指定resource对象对应的字符串,使用同步方式返回字符串。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ----------- | +| string | resource对象对应的字符串 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.string.test').id + }; + this.context.resourceManager.getStringSync(resource); + ``` + ### getStringByNameSync9+ getStringByNameSync(resName: string): string @@ -1163,6 +1513,33 @@ getBoolean(resId: number): boolean ``` resourceManager.getBoolean($r('app.boolean.boolean_test').id); ``` +### getBoolean9+ + +getBoolean(resource: Resource): boolean + +使用同步方式,返回获取指定resource对象对应的布尔结果。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ----------- | +| boolean | resource对象对应的布尔结果 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.boolean.boolean_test').id + }; + this.context.resourceManager.getBoolean(resource); + ``` ### getBooleanByName9+ @@ -1211,6 +1588,34 @@ getNumber(resId: number): number resourceManager.getNumber($r('app.float.float_test').id); ``` +### getNumber9+ + +getNumber(resource: Resource): number + +用户获取指定resource对象对应的integer数值或者float数值,使用同步方式返回资源对应的数值。 + +**系统能力**:SystemCapability.Global.ResourceManager + +**参数:** +| 参数名 | 类型 | 必填 | 说明 | +| ----- | ------ | ---- | ----- | +| resource | [Resource](#resource) | 是 | 资源信息 | + +**返回值:** +| 类型 | 说明 | +| --------------------- | ----------- | +| number | resource对象对应的数值 | + +**示例:** + ``` + let resource = { + bundleName: "com.example.myapplication", + moduleName: "entry", + id: $r('app.integer.integer_test').id + }; + this.context.resourceManager.getNumber(resource); + ``` + ### getNumberByName9+ getNumberByName(resName: string): number diff --git a/zh-cn/application-dev/reference/apis/js-apis-router.md b/zh-cn/application-dev/reference/apis/js-apis-router.md index 13c7bad16ef2206576bb23ff3e7b8d4df095183f..d8fc608e699c0ccd46b7e65da250dcf9994da9e5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-router.md +++ b/zh-cn/application-dev/reference/apis/js-apis-router.md @@ -29,6 +29,7 @@ push(options: RouterOptions): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | +| mode9+ | [RouterMode](#routermode9) | 否 | 跳转页面使用的模式。 | **示例:** @@ -77,6 +78,7 @@ replace(options: RouterOptions): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | | options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | +| mode9+ | [RouterMode](#routermode9) | 否 | 跳转页面使用的模式。 | **示例:** @@ -89,7 +91,7 @@ replace(options: RouterOptions): void params: { data1: 'message', }, - }); + }, router.RouterMode.Standard); } } ``` @@ -438,3 +440,13 @@ getParams(): Object > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 页面路由栈支持的最大Page数量为32。 +## RouterMode9+ + +路由跳转模式。 + +**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Lite。 + +| 名称 | 描述 | +| -------- | -------- | +| Standard | 标准模式。 | +| Single | 单实例模式。
如果目标页面的url在页面栈中已经存在同url页面,离栈顶最近的页面会被移动到栈顶,移动后的页面为新建页。
如目标页面的url在页面栈中不存在同url页面,按标准模式跳转。 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md b/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md index 255ec5792603390e1eb64cd9e8569c0af89f8d51..34a85c6f3ca0098102c08121a098058e1fb15010 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md +++ b/zh-cn/application-dev/reference/apis/js-apis-securityLabel.md @@ -1,10 +1,10 @@ # 数据标签 +该模块提供文件数据安全等级的相关功能:向应用程序提供查询、设置文件数据安全等级的JS接口。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 -该模块提供文件数据安全等级的相关功能:向应用程序提供查询、设置文件数据安全等级的JS接口。 - ## 导入模块 ```js diff --git a/zh-cn/application-dev/reference/apis/js-apis-statfs.md b/zh-cn/application-dev/reference/apis/js-apis-statfs.md index d213902e4c4f46d228f1765e417ea2371306fb36..23e357dc9f3f970cf579ffbc1229023867eb2c6a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-statfs.md +++ b/zh-cn/application-dev/reference/apis/js-apis-statfs.md @@ -1,10 +1,10 @@ # statfs +该模块提供文件系统相关存储信息的功能,向应用程序提供获取文件系统总字节数、空闲字节数的JS接口。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 -该模块提供文件系统相关存储信息的功能,向应用程序提供获取文件系统总字节数、空闲字节数的JS接口。 - ## 导入模块 ```js diff --git a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md index 5b838f928823ab8c5f20ee4cbaaa8959b6cf4c4a..be091dacdebc8dd1b1d944c01af095c0b57f5625 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md +++ b/zh-cn/application-dev/reference/apis/js-apis-storage-statistics.md @@ -1,12 +1,12 @@ # 应用空间统计 +该模块提供空间查询相关的常用功能:包括对内外卡的空间查询,对应用分类数据统计的查询,对应用数据的查询等。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > > - 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > - API 9当前为Canary版本,仅供试用,不保证接口可稳定调用。 -该模块提供空间查询相关的常用功能:包括对内外卡的空间查询,对应用分类数据统计的查询,对应用数据的查询等。 - ## 导入模块 ```js diff --git a/zh-cn/application-dev/reference/apis/js-apis-update.md b/zh-cn/application-dev/reference/apis/js-apis-update.md index 6cc3b214ff5110c57def5f91dd3698e860136347..15a198a2c780b9419d8fee05e4dc997c8443afa1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-update.md +++ b/zh-cn/application-dev/reference/apis/js-apis-update.md @@ -1,7 +1,8 @@ # 升级 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> **说明:** +> +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 升级范围:升级整个系统,包括内置的资源、预置应用;第三方的应用不在升级的范围。 @@ -16,15 +17,11 @@ import update from '@ohos.update' ``` -## 权限列表 +## update.getOnlineUpdater -无 +getOnlineUpdater(upgradeInfo: UpgradeInfo): Updater -## update.getUpdater - -getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater - -获取本地升级Updater。 +获取在线升级对象。 **系统能力**:SystemCapability.Update.UpdateService @@ -32,8 +29,7 @@ getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater | 参数名 | 类型 | 必填 | 说明 | | ----------- | --------------------------- | ---- | ---- | -| upgradeFile | string | 是 | 升级文件 | -| updateType | [UpdateTypes](#updatetypes) | 是 | 升级类型 | +| upgradeInfo | [UpgradeInfo](#upgradeinfo) | 是 | 升级信息对象 | **返回值:** @@ -45,100 +41,144 @@ getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater ``` try { - let updater = update.getUpdater('/data/updater/updater.zip', 'OTA'); + var upgradeInfo = { + upgradeApp: "com.ohos.ota.updateclient", + businessType: { + vendor: update.BusinessVendor.PUBLIC, + subType: update.BusinessSubType.FIRMWARE + } + } + let updater = update.getOnlineUpdater(upgradeInfo); } catch(error) { - console.error(" Fail to get updater error: " + error); + console.error(`Fail to get updater error: ${error}`); } ``` -## update.getUpdaterForOther +## update.getRestorer -getUpdaterForOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater +getRestorer(): Restorer -获取升级对象给待升级设备。 +获取恢复出厂对象。 **系统能力**:SystemCapability.Update.UpdateService -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------- | ---- | ----- | -| upgradeFile | string | 是 | 升级文件 | -| device | string | 是 | 待升级设备 | -| updateType | [UpdateTypes](#updatetypes) | 是 | 升级类型 | **返回值:** | 类型 | 说明 | | ------------------- | ---- | -| [Updater](#updater) | 升级对象 | +| [Restorer](#restorer) | 恢复出厂对象 | **示例:** ``` try { - let updater = update.getUpdaterForOther('/data/updater/updater.zip', '1234567890', 'OTA'); + let restorer = update.getRestorer(); } catch(error) { - console.error(" Fail to get updater error: " + error); + console.error(`Fail to get restorer: ${error}`); } ``` -## update.getUpdaterFromOther +## update.getLocalUpdater -getUpdaterFromOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater +getLocalUpdater(): LocalUpdater -获取其它设备为本设备升级的Updater。 +获取本地升级对象。 **系统能力**:SystemCapability.Update.UpdateService -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------- | ---- | ----- | -| upgradeFile | string | 是 | 升级文件 | -| device | string | 是 | 待升级设备 | -| updateType | [UpdateTypes](#updatetypes) | 是 | 升级类型 | - **返回值:** | 类型 | 说明 | | ------------------- | ---- | -| [Updater](#updater) | 升级对象 | +| [LocalUpdater](#localupdater) | 本地升级对象 | **示例:** ``` try { - let updater = update.getUpdaterFromOther('/data/updater/updater.zip', '1234567890', 'OTA'); + let localUpdater = update.getLocalUpdater(); } catch(error) { - console.error(" Fail to get updater error: " + error); + console.error(`Fail to get localUpdater error: ${error}`); } ``` ## Updater +### checkNewVersion + +checkNewVersion(callback: AsyncCallback\): void + +检查新版本信息。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| callback | AsyncCallback\<[CheckResult](#checkresult)> | 是 | 回调函数,返回搜包结果对象。 | + +**示例:** + +``` +updater.checkNewVersion((err, result) => { + console.log(`checkNewVersion isExistNewVersion ${result?.isExistNewVersion}`); +}); +``` + +### checkNewVersion + +checkNewVersion(): Promise\ + +检查新版本信息。使用Promise异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\<[CheckResult](#checkresult)> | Promise对象,返回搜包结果对象。 | + +**示例:** + +``` +updater.checkNewVersion().then(result => { + console.log(`checkNewVersion isExistNewVersion: ${result.isExistNewVersion}`); + // 版本摘要信息 + console.log(`checkNewVersion versionDigestInfo: ${result.newVersionInfo.versionDigestInfo.versionDigest}`); +}).catch(err => { + console.log(`checkNewVersion promise error ${JSON.stringify(err)}`); +}); +``` + ### getNewVersionInfo getNewVersionInfo(callback: AsyncCallback\): void -获取新版本信息,使用callback方式作为异步方法。 +获取新版本信息。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | --------- | -| callback | AsyncCallback<[NewVersionInfo](#newversioninfo)> | 否 | 回调返回新版本信息 | +| callback | AsyncCallback\<[NewVersionInfo](#newversioninfo)> | 是 | 回调函数,返回新版本信息对象。 | **示例:** ``` updater.getNewVersionInfo((err, info) => { - console.log("getNewVersionInfo success " + info.status); - console.log(`info versionName = ` + info.checkResults[0].versionName); - console.log(`info versionCode = ` + info.checkResults[0].versionCode); - console.log(`info verifyInfo = ` + info.checkResults[0].verifyInfo); + console.log(`info displayVersion = ${info?.versionComponents[0].displayVersion}`); + console.log(`info innerVersion = ${info?.versionComponents[0].innerVersion}`); }); ``` @@ -146,451 +186,1377 @@ updater.getNewVersionInfo((err, info) => { getNewVersionInfo(): Promise\ -获取新版本信息,使用promise方式作为异步方法。 +获取新版本信息。使用Promise异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **返回值:** | 类型 | 说明 | | ---------------------------------------- | ---------------- | -| Promise\<[NewVersionInfo](#newversioninfo)> | Promise,用于异步获取结果 | +| Promise\<[NewVersionInfo](#newversioninfo)> | Promise对象,返回新版本信息对象。 | **示例:** ``` -updater.getNewVersionInfo().then(value => { - console.log(`info versionName = ` + value.checkResults[0].versionName); - console.log(`info versionCode = ` + value.checkResults[0].versionCode); - console.log(`info verifyInfo = ` + value.checkResults[0].verifyInfo); +updater.getNewVersionInfo().then(info => { + console.log(`info displayVersion = ${info.versionComponents[0].displayVersion}`); + console.log(`info innerVersion = ${info.versionComponents[0].innerVersion}`); }).catch(err => { - console.log("getNewVersionInfo promise error: " + err.code); + console.log(`getNewVersionInfo promise error ${JSON.stringify(err)}`); }); ``` -### checkNewVersion +### getCurrentVersionInfo -checkNewVersion(callback: AsyncCallback\): void +getCurrentVersionInfo(callback: AsyncCallback\): void -检查新版本,使用callback方式作为异步方法。 +获取当前版本信息。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | --------- | -| callback | AsyncCallback\<[NewVersionInfo](#newversioninfo)> | 否 | 回调返回新版本信息 | +| callback | AsyncCallback\<[CurrentVersionInfo](#currentversioninfo)> | 是 | 回调函数,返回当前版本信息对象。 | **示例:** ``` -updater.checkNewVersion((err, info) => { - console.log("checkNewVersion success " + info.status); - console.log(`info versionName = ` + info.checkResults[0].versionName); - console.log(`info versionCode = ` + info.checkResults[0].versionCode); - console.log(`info verifyInfo = ` + info.checkResults[0].verifyInfo); +updater.getCurrentVersionInfo((err, info) => { + console.log(`info osVersion = ${info?.osVersion}`); + console.log(`info deviceName = ${info?.deviceName}`); + console.log(`info displayVersion = ${info?.versionComponents[0].displayVersion}`); }); ``` -### checkNewVersion +### getCurrentVersionInfo -checkNewVersion(): Promise\ +getCurrentVersionInfo(): Promise\ -检查新版本,使用promise方式作为异步方法。 +获取当前版本信息。使用Promise异步回调。 **系统能力**:SystemCapability.Update.UpdateService -**返回值:** +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**返回值:** | 类型 | 说明 | | ---------------------------------------- | ---------------- | -| Promise\<[NewVersionInfo](#newversioninfo)> | Promise函数返回新版本信息 | +| Promise\<[CurrentVersionInfo](#currentversioninfo)> | Promise对象,返回当前版本对象。 | -**示例:** +**示例:** ``` -updater.checkNewVersion().then(value => { - console.log(`info versionName = ` + value.checkResults[0].versionName); - console.log(`info versionCode = ` + value.checkResults[0].versionCode); - console.log(`info verifyInfo = ` + value.checkResults[0].verifyInfo); +updater.getCurrentVersionInfo().then(info => { + console.log(`info osVersion = ${info.osVersion}`); + console.log(`info deviceName = ${info.deviceName}`); + console.log(`info displayVersion = ${info.versionComponents[0].displayVersion}`); }).catch(err => { - console.log("checkNewVersion promise error: " + err.code); + console.log(`getCurrentVersionInfo promise error ${JSON.stringify(err)}`); }); ``` -### verifyUpdatePackage +### getTaskInfo -verifyUpdatePackage(upgradeFile: string, certsFile: string): void +getTaskInfo(callback: AsyncCallback\): void -升级前检查升级包是否有效。 +获取升级任务信息。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | ------ | ---- | --------- | -| upgradeFile | string | 是 | 待校验的升级包路径 | -| certsFile | string | 是 | 证书路径 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| callback | AsyncCallback\<[TaskInfo](#taskinfo)> | 是 | 回调函数,返回升级任务信息对象。 | **示例:** ``` -updater.on("verifyProgress", callback => { - console.info('on verifyProgress ' + callback.percent); +updater.getTaskInfo((err, info) => { + console.log(`getTaskInfo isexistTask= ${info?.existTask}`); }); -update.verifyUpdatePackage("XXX", "XXX"); ``` -### rebootAndCleanUserData8+ +### getTaskInfo -rebootAndCleanUserData(): Promise\ +getTaskInfo(): Promise\ -重启设备并清除用户分区数据。 +获取升级任务信息。使用Promise异步回调。 **系统能力**:SystemCapability.Update.UpdateService **返回值:** -| 类型 | 说明 | -| ---------------- | ------------------- | -| Promise\ | Promise示例,用于异步获取结果。 | +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\<[TaskInfo](#taskinfo)> | Promise对象,返回任务信息对象。 | **示例:** ``` -updater.rebootAndCleanUserData().then(result => { - console.log("rebootAndCleanUserData " + result); +updater.getTaskInfo().then(info => { + console.log(`getTaskInfo isexistTask= ${info.existTask}`); }).catch(err => { - console.info("rebootAndCleanUserData promise error: " + err.code); + console.log(`getTaskInfo promise error ${JSON.stringify(err)}`); }); ``` -### rebootAndCleanUserData8+ +### download -rebootAndCleanUserData(callback: AsyncCallback\): void +download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions, callback: AsyncCallback\): void -重启设备并清除用户分区数据。 +下载新版本。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ---------------------- | -| callback | Function | 是 | AsyncCallback\ | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| downloadOptions | [DownloadOptions](#downloadoptions) | 是 | 下载选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当下载成功时,err为undefined,否则为错误对象。 | **示例:** ``` -updater.rebootAndCleanUserData((err, result) => { - console.log("rebootAndCleanUserData ", result) +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 下载选项 +var downloadOptions = { + allowNetwork: update.NetType.CELLULAR_AND_WIFI, // 允许所有网络下载 + order: update.Order.DOWNLOAD // 下载 +} +updater.download(versionDigestInfo, downloadOptions, (err) => { + console.log(`download error ${JSON.stringify(err)}`); }); ``` -### applyNewVersion +### download -applyNewVersion(): Promise\ +download(versionDigestInfo: VersionDigestInfo, downloadOptions: DownloadOptions): Promise\ -重启设备后安装升级包。 +下载新版本。使用Promise异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| downloadOptions | [DownloadOptions](#downloadoptions) | 是 | 下载选项 | + **返回值:** -| 类型 | 说明 | -| ---------------- | ------------------- | -| Promise\ | Promise示例,用于异步获取结果。 | +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** ``` -updater.applyNewVersion().then(result => { - console.log("appVewVersion ", result) +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 下载选项 +var downloadOptions = { + allowNetwork: update.NetType.CELLULAR_AND_WIFI, // 允许所有网络下载 + order: update.Order.DOWNLOAD // 下载 +} +updater.download(versionDigestInfo, downloadOptions).then(() => { + console.log(`download start`); }).catch(err => { - console.info("applyNewVersion promise error: " + err.code); + console.log(`download error ${JSON.stringify(err)}`); }); ``` -### applyNewVersion +### resumeDownload -applyNewVersion(callback: AsyncCallback\): void +resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions, callback: AsyncCallback\): void -重启设备后安装升级包。 +恢复下载新版本。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ---------------------- | -| callback | Function | 是 | AsyncCallback\ | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是 | 恢复下载选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当恢复下载成功时,err为undefined,否则为错误对象。 | **示例:** ``` -updater.applyNewVersion((err, result) => { - console.log("applyNewVersion ", result) +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 恢复下载选项 +var resumeDownloadOptions = { + allowNetwork: update.NetType.CELLULAR_AND_WIFI, // 允许所有网络下载 +} +updater.resumeDownload(versionDigestInfo, resumeDownloadOptions, (err) => { + console.log(`resumeDownload error ${JSON.stringify(err)}`); }); ``` -### download +### resumeDownload + +resumeDownload(versionDigestInfo: VersionDigestInfo, resumeDownloadOptions: ResumeDownloadOptions): Promise\ + +恢复下载新版本。使用Promise异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| resumeDownloadOptions | [ResumeDownloadOptions](#resumedownloadoptions) | 是 | 恢复下载选项 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**示例:** + +``` +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 恢复下载选项 +var resumeDownloadOptions = { + allowNetwork: update.NetType.CELLULAR_AND_WIFI, // 允许所有网络下载 +} +updater.resumeDownload(versionDigestInfo, resumeDownloadOptions).then(value => { + console.log(`resumeDownload start`); +}).catch(err => { + console.log(`resumeDownload error ${JSON.stringify(err)}`); +}); +``` + +### pauseDownload + +pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions, callback: AsyncCallback\): void + +暂停下载新版本。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是 | 暂停下载选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当暂停下载成功时,err为undefined,否则为错误对象。 | + +**示例:** + +``` +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 暂停下载选项 +var pauseDownloadOptions = { + isAllowAutoResume: true // 允许自动恢复下载 +} +updater.pauseDownload(versionDigestInfo, pauseDownloadOptions, (err) => { + console.log(`pauseDownload error ${JSON.stringify(err)}`); +}); +``` + +### pauseDownload + +pauseDownload(versionDigestInfo: VersionDigestInfo, pauseDownloadOptions: PauseDownloadOptions): Promise\ + +恢复下载新版本。使用Promise异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| pauseDownloadOptions | [PauseDownloadOptions](#pausedownloadoptions) | 是 | 暂停下载选项 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**示例:** + +``` +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 暂停下载选项 +var pauseDownloadOptions = { + isAllowAutoResume: true // 允许自动恢复下载 +} +updater.pauseDownload(versionDigestInfo, pauseDownloadOptions).then(value => { + console.log(`pauseDownload`); +}).catch(err => { + console.log(`pauseDownload error ${JSON.stringify(err)}`); +}); +``` + +### upgrade -download(): void +upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions, callback: AsyncCallback\): void -下载新版本,并监听下载进程。 +升级新版本。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是 | 更新选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当升级执行成功时,err为undefined,否则为错误对象。 | + **示例:** ``` -updater.on("downloadProgress", progress => { - console.log("downloadProgress on" + progress); - console.log(`downloadProgress status: ` + progress.status); - console.log(`downloadProgress percent: ` + progress.percent); +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 安装选项 +var upgradeOptions = { + order: update.Order.INSTALL // 安装指令 +} +updater.upgrade(versionDigestInfo, upgradeOptions, (err) => { + console.log(`upgrade error ${JSON.stringify(err)}`); }); -updater.download(); ``` ### upgrade -upgrade():void +upgrade(versionDigestInfo: VersionDigestInfo, upgradeOptions: UpgradeOptions): Promise\ -启动升级。 +升级新版本。使用Promise异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| upgradeOptions | [UpgradeOptions](#upgradeoptions) | 是 | 更新选项 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | + **示例:** ``` -updater.on("upgradeProgress", progress => { - console.log("upgradeProgress on" + progress); - console.log(`upgradeProgress status: ` + progress.status); - console.log(`upgradeProgress percent: ` + progress.percent); +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 安装选项 +var upgradeOptions = { + order: update.Order.INSTALL // 安装指令 +} +updater.upgrade(versionDigestInfo, upgradeOptions).then(() => { + console.log(`upgrade start`); +}).catch(err => { + console.log(`upgrade error ${JSON.stringify(err)}`); }); -updater.upgrade(); ``` -### setUpdatePolicy +### clearError -setUpdatePolicy(policy: UpdatePolicy, callback: AsyncCallback\): void +clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions, callback: AsyncCallback\): void -设置升级策略,使用callback方式作为异步方法。 +清除异常状态。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------- | ---- | ------ | -| policy | [UpdatePolicy](#updatepolicy) | 是 | 设置升级策略 | -| callback | AsyncCallback\ | 是 | 回调返回结果 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| clearOptions | [ClearOptions](#clearoptions) | 是 | 清除选项 | +| callback | AsyncCallback\ | 是 | 回调函数。当清除异常成功时,err为undefined,否则为错误对象。 | **示例:** ``` -// 设置策略 -let policy = { - autoDownload: false, - autoDownloadNet: true, - mode: 2, - autoUpgradeInterval: [ 2, 3 ], - autoUpgradeCondition: 2 -} -updater.setUpdatePolicy(policy, (err, result) => { - console.log("setUpdatePolicy ", result) +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 清除选项 +var clearOptions = { + status: update.UpgradeStatus.UPGRADE_FAIL, +} +updater.clearError(versionDigestInfo, clearOptions, (err) => { + console.log(`clearError error ${JSON.stringify(err)}`); }); ``` -### setUpdatePolicy +### clearError -setUpdatePolicy(policy: UpdatePolicy): Promise\ +clearError(versionDigestInfo: VersionDigestInfo, clearOptions: ClearOptions): Promise\ -设置升级策略,使用promise方式作为异步方法。 +清除异常状态。使用Promise异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------------------------- | ---- | ------ | -| policy | [UpdatePolicy](#updatepolicy) | 是 | 设置升级策略 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要信息 | +| clearOptions | [ClearOptions](#clearoptions) | 是 | 更新选项 | **返回值:** -| 类型 | 说明 | -| ---------------- | --------------- | -| Promise\ | Promise函数返回设置结果 | +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | **示例:** ``` -let policy = { - autoDownload: false, - autoDownloadNet: true, - mode: 2, - autoUpgradeInterval: [ 2, 3 ], - autoUpgradeCondition: 2 -} -updater.setUpdatePolicy(policy).then(result => - console.log("setUpdatePolicy ", result) -).catch(err => { - console.log("setUpdatePolicy promise error: " + err.code); +// 版本摘要信息 +var versionDigestInfo = { + versionDigest: "versionDigest" // 检测结果中的版本摘要信息 +} + +// 清除选项 +var clearOptions = { + status: update.UpgradeStatus.UPGRADE_FAIL, +} +updater.clearError(versionDigestInfo, clearOptions).then(() => { + console.log(`clearError success`); +}).catch(err => { + console.log(`clearError error ${JSON.stringify(err)}`); }); ``` -### getUpdatePolicy +### getUpgradePolicy -getUpdatePolicy(callback: AsyncCallback\): void +getUpgradePolicy(callback: AsyncCallback\): void -获取升级策略信息,使用callback方式作为异步方法。 +获取升级策略信息。使用callback异步回调。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------- | ---- | ---------- | -| callback | AsyncCallback\<[UpdatePolicy](#updatepolicy)> | 否 | 回调返回升级策略信息 | +| callback | AsyncCallback\<[UpgradePolicy](#upgradepolicy)> | 是 | 回调函数,返回升级策略信息对象 | **示例:** ``` -updater.getUpdatePolicy((err, policy) => { - console.log("getUpdatePolicy success"); - console.log(`policy autoDownload = ` + policy.autoDownload); - console.log(`policy autoDownloadNet = ` + policy.autoDownloadNet); - console.log(`policy mode = ` + policy.mode); +updater.getUpgradePolicy((err, policy) => { + console.log(`policy downloadStrategy = ${policy?.downloadStrategy}`); + console.log(`policy autoUpgradeStrategy = ${policy?.autoUpgradeStrategy}`); }); ``` -### getUpdatePolicy +### getUpgradePolicy -getUpdatePolicy(): Promise\ +getUpgradePolicy(): Promise\ 获取升级策略,通过promise方式作为异步方法。 **系统能力**:SystemCapability.Update.UpdateService +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + **返回值:** | 类型 | 说明 | | --------------------------------------- | ----------------- | -| Promise\<[UpdatePolicy](#updatepolicy)> | Promise函数返回升级策略信息 | +| Promise\<[UpgradePolicy](#upgradepolicy)> | Promise对象,返回升级策略信息对象。 | **示例:** ``` -updater.getUpdatePolicy().then(value => { - console.log(`info autoDownload = ` + value.autoDownload); - console.log(`info autoDownloadNet = ` + value.autoDownloadNet); - console.log(`info mode = ` + value.mode); +updater.getUpgradePolicy().then(policy => { + console.log(`policy downloadStrategy = ${policy.downloadStrategy}`); + console.log(`policy autoUpgradeStrategy = ${policy.autoUpgradeStrategy}`); }).catch(err => { - console.log("getUpdatePolicy promise error: " + err.code); + console.log(`getUpgradePolicy promise error ${JSON.stringify(err)}`); }); ``` -## UpdateTypes +### setUpgradePolicy -升级类型。 +setUpgradePolicy(policy: UpgradePolicy, callback: AsyncCallback\): void -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +设置升级策略。使用callback异步回调。 -| 参数名 | 说明 | -| ----- | ----- | -| OTA | OTA升级 | -| patch | 补丁升级 | +**系统能力**:SystemCapability.Update.UpdateService -## PackageTypes +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 -升级包类型。 +**参数:** -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | ---------- | +| policy | [UpgradePolicy](#upgradepolicy) | 是 | 升级策略 | +| callback | AsyncCallback\ | 是 | 回调函数,返回设置结果对象 | -| 参数名 | 默认值 | 说明 | -| -------------------- | ---- | ------- | -| PACKAGE_TYPE_NORMAL | 1 | 通用升级包 | -| PACKAGE_TYPE_BASE | 2 | 基础升级包 | -| PACKAGE_TYPE_CUST | 3 | 定制升级包 | -| PACKAGE_TYPE_PRELOAD | 4 | 预装升级包 | -| PACKAGE_TYPE_COTA | 5 | 参数配置升级包 | -| PACKAGE_TYPE_VERSION | 6 | 版本升级包 | -| PACKAGE_TYPE_PATCH | 7 | 补丁包 | +**示例:** -## InstallMode +``` +let policy = { + downloadStrategy: false, + autoUpgradeStrategy: false, + autoUpgradeInterval: [ 120, 240 ], // 自动升级时间段,用分钟表示 +} +updater.setUpgradePolicy(policy, (err, value) => { + console.log(`setUpgradePolicy result: ${value?}`); +}); +``` -安装模式。 +### setUpgradePolicy -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +setUpgradePolicy(policy: UpgradePolicy): Promise\ -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | ---- | -| INSTALL_MODE_NORMAL | 0 | 正常升级 | -| INSTALL_MODE_NIGHT | 1 | 夜间升级 | -| INSTALL_MODE_AUTO | 2 | 自动升级 | +设置升级策略。使用Promise异步回调。 -## NewVersionStatus +**系统能力**:SystemCapability.Update.UpdateService -新版本检测状态。 +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +**参数:** -| 参数名 | 默认值 | 说明 | -| ------------------- | ---- | -------- | -| VERSION_STATUS_ERR | -1 | 检测版本时出错 | -| VERSION_STATUS_NEW | 0 | 检测到新版本 | -| VERSION_STATUS_NONE | 1 | 没有检测到新版本 | -| VERSION_STATUS_BUSY | 2 | 检测版本时忙 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ----------------------------- | ---- | ------ | +| policy | [UpgradePolicy](#upgradepolicy) | 是 | 升级策略 | -## UpdatePolicy +**返回值:** -升级策略。 +| 类型 | 说明 | +| ---------------- | --------------- | +| Promise\ | Promise对象,返回设置结果对象。 | -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +**示例:** -| 名称 | 参数类型 | 必填 | 说明 | -| ------------------- | --------------------------- | ---- | ------- | -| autoDownload | bool | 是 | 自动升级开关 | -| installMode | [InstallMode](#installmode) | 是 | 安装模式 | -| autoUpgradeInterval | Array\ | 是 | 自动升级时间段 | +``` +let policy = { + downloadStrategy: false, + autoUpgradeStrategy: false, + autoUpgradeInterval: [ 120, 240 ], // 自动升级时间段,用分钟表示 +} +updater.setUpgradePolicy(policy).then(result => + console.log(`setUpgradePolicy &{result}`); +).catch(err => { + console.log(`setUpgradePolicy promise error ${JSON.stringify(err)}`); +}); +``` -## NewVersionInfo +### terminateUpgrade -新版本信息。 +terminateUpgrade(callback: AsyncCallback\): void -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +终止升级。使用callback异步回调。 -| 名称 | 参数类型 | 必填 | 说明 | -| --------------- | ---------------------------------------- | ---- | ---- | -| status | [NewVersionStatus](#newversionstatus) | 是 | 升级状态 | -| errMsg | string | 是 | 错误信息 | -| checkResults | Array<[CheckResult](#checkresult)> | 是 | 检测结果 | -| descriptionInfo | Array\<[DescriptionInfo](#descriptioninfo)> | 是 | 描述信息 | +**系统能力**:SystemCapability.Update.UpdateService -## CheckResult +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| callback | AsyncCallback\ | 是 | 回调函数。当清除升级缓存成功时,err为undefined,否则为错误对象。 | -检测结果。 +**示例:** -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +``` +updater.terminateUpgrade((err) => { + console.log(`terminateUpgrade error ${JSON.stringify(err)}`); +}); +``` -| 名称 | 参数类型 | 必填 | 说明 | -| ------------- | ----------------------------- | ---- | ------ | -| versionName | string | 是 | 版本名称 | -| versionCode | number | 是 | 版本编码 | -| size | number | 是 | 版本大小 | -| verifyInfo | string | 是 | 版本校验信息 | -| packageType | [PackageTypes](#packagetypes) | 是 | 版本类型 | -| descriptionId | string | 是 | 版本描述信息 | +### terminateUpgrade -## DescriptionInfo +terminateUpgrade(): Promise\ -版本描述信息。 +终止升级。使用Promise异步回调。 -**系统能力**:以下各项对应的系统能力均为:SystemCapability.Update.UpdateService +**系统能力**:SystemCapability.Update.UpdateService -| 名称 | 参数类型 | 必填 | 说明 | -| ------------- | ------ | ---- | ------------- | -| descriptionId | string | 是 | 版本versionId信息 | -| content | string | 是 | 版本changelog信息 | \ No newline at end of file +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**示例:** + +``` +updater.terminateUpgrade().then(() => { + console.log(`terminateUpgrade success`); +}).catch(err => { + console.log(`terminateUpgrade error ${JSON.stringify(err)}`); +}); +``` + + +### on +on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void + +注册事件监听。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | + +**示例:** + +``` +var eventClassifyInfo = { + eventClassify: update.EventClassify.TASK, // 订阅升级更新事件 + extraInfo: "" +} + +function onTaskUpdate(eventInfo): void { + console.log(`on eventInfo id `, eventInfo.eventId); +} + +updater.on(eventClassifyInfo, onTaskUpdate); +``` + +### off +off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void + +取消注册事件监听。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 否 | 事件回调 | + +**示例:** + +``` +var eventClassifyInfo = { + eventClassify: update.EventClassify.TASK, // 订阅升级更新事件 + extraInfo: "" +} + +function onTaskUpdate(eventInfo): void { + console.log(`on eventInfo id `, eventInfo.eventId); +} + +updater.off(eventClassifyInfo, onTaskUpdate); +``` + +## Restorer + +### factoryReset + +factoryReset(callback: AsyncCallback\): void + +恢复出厂设置。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.FACTORY_RESET,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| callback | AsyncCallback\ | 是 | 回调函数。当恢复出厂执行成功时,err为undefined,否则为错误对象。 | + +**示例:** + +``` +restorer.factoryReset((err) => { + console.log(`factoryReset error ${JSON.stringify(err)}`); +}); +``` + +### factoryReset + +factoryReset(): Promise\ + +恢复出厂设置。使用Promise异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.FACTORY_RESET,该权限为系统权限 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**示例:** + +``` +restorer.factoryReset().then(() => { + console.log(`factoryReset success`); +}).catch(err => { + console.log(`factoryReset error ${JSON.stringify(err)}`); +}); +``` + +## LocalUpdater + +### verifyUpgradePackage + +verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string, callback: AsyncCallback\): void + +校验升级包。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| upgradeFile | [UpgradeFile](#upgradefile) | 是 | 升级文件 | +| certsFile | string | 是 | 证书文件路径 | +| callback | AsyncCallback\ | 是 | 回调函数,返回升级包校验结果对象 | + +**示例:** + +``` +var upgradeFile = { + fileType: update.ComponentType.OTA, // OTA包 + filePath: "path" // 本地升级包路径 +} + +localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath", (err, result) => { + console.log(`factoryReset error ${JSON.stringify(err)}`); +}); +``` + +### verifyUpgradePackage + +verifyUpgradePackage(upgradeFile: UpgradeFile, certsFile: string): Promise\ + +校验升级包。使用Promise异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| upgradeFile | [UpgradeFile](#upgradefile) | 是 | 升级文件 | +| certsFile | string | 是 | 证书文件路径 | + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象,返回升级包校验结果对象。 | + +**示例:** + +``` +var upgradeFile = { + fileType: update.ComponentType.OTA, // OTA包 + filePath: "path" // 本地升级包路径 +} +localUpdater.verifyUpgradePackage(upgradeFile, "cerstFilePath").then(result => { + console.log(`verifyUpgradePackage result: ${result}`); +}).catch(err => { + console.log(`verifyUpgradePackage error ${JSON.stringify(err)}`); +}); +``` + +### applyNewVersion +applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>, callback: AsyncCallback\): void + +安装升级包。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| upgradeFile | Array<[UpgradeFile](#upgradefile)> | 是 | 升级文件 | +| callback | AsyncCallback\ | 是 | 回调函数。当安装升级包执行成功时,err为undefined,否则为错误对象。 | + +**示例:** + +``` +var upgradeFiles = [{ + fileType: update.ComponentType.OTA, // OTA包 + filePath: "path" // 本地升级包路径 +}] + +localUpdater.applyNewVersion(upgradeFiles, (err) => { + console.log(`applyNewVersion error ${JSON.stringify(err)}`); +}); +``` + +### applyNewVersion + +applyNewVersion(upgradeFiles: Array<[UpgradeFile](#upgradefile)>): Promise\ + +安装升级包。使用Promise异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**需要权限**:ohos.permission.UPDATE_SYSTEM,该权限为系统权限 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ---------------- | +| Promise\ | Promise对象。无返回结果的Promise对象。 | + +**示例:** + +``` +var upgradeFiles = [{ + fileType: update.update.ComponentType.OTA, // OTA包 + filePath: "path" // 本地升级包路径 +}] +localUpdater.applyNewVersion(upgradeFiles).then(() => { + console.log(`applyNewVersion success`); +}).catch(err => { + console.log(`applyNewVersion error ${JSON.stringify(err)}`); +}); +``` + +### on +on(eventClassifyInfo: EventClassifyInfo, taskCallback: UpgradeTaskCallback): void + +注册事件监听。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | + +**示例:** + +``` +var eventClassifyInfo = { + eventClassify: update.EventClassify.TASK, // 订阅升级更新事件 + extraInfo: "" +} + +function onTaskUpdate(eventInfo) { + console.log(`on eventInfo id `, eventInfo.eventId); +} + +localUpdater.on(eventClassifyInfo, onTaskUpdate); +``` + +### off +off(eventClassifyInfo: EventClassifyInfo, taskCallback?: UpgradeTaskCallback): void + +取消注册事件监听。使用callback异步回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------- | ---- | --------- | +| eventClassifyInfo | [EventClassifyInfo](#eventclassifyinfo) | 是 | 事件信息 | +| taskCallback | [UpgradeTaskCallback](#upgradetaskcallback) | 是 | 事件回调 | + +**示例:** + +``` +var eventClassifyInfo = { + eventClassify: update.EventClassify.TASK, // 订阅升级更新事件 + extraInfo: "" +} + +function onTaskUpdate(eventInfo) { + console.log(`on eventInfo id `, eventInfo.eventId); +} + +localUpdater.off(eventClassifyInfo, onTaskUpdate); +``` + +## UpgradeInfo + +升级信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| upgradeApp | string | 是 | 调用方包名 | +| businessType | [BusinessType](#businesstype) | 是 | 升级业务类型 | + +## BusinessType + +升级业务类型。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| vendor | [BusinessVendor](#businessvendor) | 是 | 供应商 | +| subType | [BusinessSubType](#businesssubtype) | 是 | 类型 | + +## CheckResult + +搜包结果。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| isExistNewVersion | bool | 是 | 是否有新版本 | +| newVersionInfo | [NewVersionInfo](#newversioninfo) | 否 | 新版本数据 | + +## NewVersionInfo + +新版本数据。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要 | +| versionComponents | Array\<[VersionComponent](#versioncomponent)> | 是 | 版本组件 | + +## VersionDigestInfo + +版本摘要。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| versionDigest | string | 是 | 版本摘要 | + +## VersionComponent + +版本组件。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| componentType | [ComponentType](#componentyype) | 是 | 组件类型 | +| upgradeAction | [UpgradeAction](#upgradeaction) | 是 | 升级方式 | +| displayVersion | string | 是 | 显示版本号 | +| innerVersion | string | 是 | 版本号 | +| size | number | 是 | 升级包大小 | +| effectiveMode | [EffectiveMode](#effectivemode) | 是 | 生效模式 | +| descriptionInfo | [DescriptionInfo](#descriptioninfo) | 是 | 版本描述文件信息 | + +## DescriptionInfo + +版本描述文件信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| descriptionType | [DescriptionType](#descriptiontype) | 是 | 描述文件类型 | +| content | string | 是 | 描述文件内容 | + +## CurrentVersionInfo + +当前版本信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| osVersion | string | 是 | 系统版本号 | +| deviceName | string | 是 | 设备名 | +| versionComponents | Array\<[VersionComponent](#vesioncomponent)> | 否 | 版本组件 | + +## DownloadOptions + +下载选项。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| allowNetwork | [NetType](#nettype) | 是 | 网络类型 | +| order | [Order](#order) | 是 | 升级指令 | + +## ResumeDownloadOptions + +恢复下载选项。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| allowNetwork | [NetType](#nettype) | 是 | 网络类型 | + +## PauseDownloadOptions + +暂停下载选项。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| isAllowAutoResume | bool | 是 | 是否允许自动恢复 | + +## UpgradeOptions + +升级选项。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| order | [Order](#order) | 是 | 升级指令 | + +## ClearOptions + +清除异常选项。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| status | [UpgradeStatus](#upgradestatus) | 是 | 异常状态 | + +## UpgradePolicy + +升级策略。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| downloadStrategy | bool | 是 | 自动下载策略 | +| autoUpgradeStrategy | bool | 是 | 自动升级策略 | +| autoUpgradePeriods | Array\<[UpgradePeriod](#upgradeperiod)> | 是 | 自动升级时间段 | + +## UpgradePeriod + +升级时间段。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| start | number | 是 | 开始时间 | +| end | number | 是 | 结束时间 | + +## TaskInfo + +任务信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| existTask | bool | 是 | 是否存在任务 | +| taskBody | [TaskBody](#taskinfo) | 是 | 任务数据 | + +## EventInfo + +事件信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| eventId | [EventId](#eventid) | 是 | 事件ID | +| taskBody | [TaskBody](#taskinfo) | 是 | 任务数据 | + +## TaskBody + +任务数据。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| versionDigestInfo | [VersionDigestInfo](#versiondigestinfo) | 是 | 版本摘要 | +| status | [UpgradeStatus](#upgradestatus) | 是 | 升级状态 | +| subStatus | number | 否 | 子状态 | +| progress | number | 是 | 进度 | +| installMode | number | 是 | 安装模式 | +| errorMessages | Array\<[ErrorMessage](#errormessage)> | 否 | 错误信息 | +| versionComponets | Array\<[VersionComponet](#versioncomponet)> | 是 | 版本组件 | + +## ErrorMessage + +错误信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| errorCode | number | 是 | 错误码 | +| errorMessage | string | 是 | 错误描述 | + +## EventClassifyInfo + +事件信息。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| eventClassify | [EventClassify](#eventclassify) | 是 | 事件类型 | +| extraInfo | string | 是 | 额外信息 | + +## UpgradeFile + +升级文件。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| ------------------- | --------------------------- | ---- | ------- | +| fileType | [ComponentType](#componenttype) | 是 | 文件类型 | +| filePath | string | 是 | 文件路径 | + +## UpgradeTaskCallback + +### onTaskUpdate +onTaskUpdate(eventInfo: [EventInfo](#eventinfo)): void + +事件回调。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 名称 | 参数类型 | 必填 | 说明 | +| --------------- | ---------------------------------------- | ---- | ---- | +| eventInfo | [EventInfo](#eventinfo) | 是 | 事件信息 | + +## BusinessVendor + +设备厂家。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| PUBLIC | "public" | 开源 | + +## BusinessSubType + +升级类型。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| FIRWARE | 1 | 固件 | + +## ComponentType + +升级包类型。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| OTA | 1 | 固件 | + +## UpgradeAction + +升级方式。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| UPGRADE | "upgrade" | 差分包 | +| RECOVERY | "recovery" | 修复包 | + +## EffectiveMode + +生效模式。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| COLD | 1 | 冷升级 | +| LIVE | 2 | 热升级 | +| LIVE_AND_COLD | 3 | 融合升级 | + +## DescriptionType + +描述文件类型。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| CONTENT | 0 | 内容 | +| URI | 1 | 链接 | + +## NetType + +网络类型。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| CELLULAR | 1 | 数据网络 | +| METERED_WIFI | 2 | 热点WIFI | +| NOT_METERED_WIFI | 4 | 非热点WIFI | +| WIFI | 6 | WIFI | +| CELLULAR_AND_WIFI | 7 | 数据网络和WIFI | + +## Order + +升级指令。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| DOWNLOAD | 1 | 下载 | +| INSTALL | 2 | 安装 | +| APPLY | 4 | 生效 | +| DOWNLOAD_AND_INSTALL | 3 | 下载并安装 | +| INSTALL_AND_APPLY | 6 | 安装并生效 | + +## UpgradeStatus + +升级状态。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| WAITING_DOWNLOAD | 20 | 待下载 | +| DOWNLOADING | 21 | 下载中 | +| DOWNLOAD_PAUSE | 22 | 下载暂停 | +| DOWNLOAD_FAIL | 23 | 下载失败 | +| WAITING_INSTALL | 30 | 待安装 | +| UPDATING | 31 | 更新中 | +| WATING_APPLY | 40 | 待生效 | +| APPLYING | 21 | 生效中 | +| UPGRADE_SUCCESS | 50 | 升级成功 | +| UPGRADE_FAIL | 51 | 升级失败 | + +## EventClassify + +事件类型。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| TASK | 0x01000000 | 任务事件 | + +## EventId + +事件ID。 + +**系统能力**:SystemCapability.Update.UpdateService + +| 参数名 | 默认值 | 说明 | +| ------------------- | ---- | -------- | +| EVENT_TASK_BASE | 0x01000000 | 任务事件 | +| EVENT_TASK_RECEIVE | 0x01000001 | 收到任务 | +| EVENT_TASK_CANCEL | 0x01000010 | 取消任务 | +| EVENT_DOWNLOAD_WAIT | 0x01000011 | 待下载 | +| EVENT_DOWNLOAD_START | 0x01000100 | 开始下载 | +| EVENT_DOWNLOAD_UPDATE | 0x01000101 | 下载进度更新 | +| EVENT_DOWNLOAD_PAUSE | 0x01000110 | 下载暂停 | +| EVENT_DOWNLOAD_RESUME | 0x01000111 | 恢复下载 | +| EVENT_DOWNLOAD_SUCCESS | 0x01001000 | 下载成功 | +| EVENT_DOWNLOAD_FAIL | 0x01001001 | 下载失败 | +| EVENT_UPGRADE_WAIT | 0x01001010 | 待升级 | +| EVENT_UPGRADE_START | 0x01001011 | 开始升级 | +| EVENT_UPGRADE_UPDATE | 0x01001100 | 升级中 | +| EVENT_APPLY_WAIT | 0x01001101 | 待生效 | +| EVENT_APPLY_START | 0x01001110 | 开始生效 | +| EVENT_UPGRADE_SUCCESS | 0x01001111 | 更新成功 | +| EVENT_UPGRADE_FAIL | 0x01010000 | 更新失败 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-usb.md b/zh-cn/application-dev/reference/apis/js-apis-usb.md index e677aa64ab3f97cc13880a25078f145b9b36764a..6f3b930ad6295efe57cb60f7543cec2a2c528990 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-usb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-usb.md @@ -1,6 +1,9 @@ # USB管理 +本模块主要提供管理USB设备的相关功能,包括查询USB设备列表、批量数据传输、控制命令传输、权限控制等。 + > **说明:** +> > 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 导入模块 diff --git a/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md b/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md index 387d3a71ad666c605dd1ba126e6ef5b79f0819f4..7cc98e4b15693698873fed6ca834c4eb9248f51c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-volumemanager.md @@ -1,13 +1,13 @@ # 卷管理 +该模块提供卷、磁盘查询和管理的相关功能:包括查询卷信息,对卷的挂载卸载、对磁盘分区以及卷的格式化等功能。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > > - 本模块首批接口从API version 9开始支持。 > - API 9当前为Canary版本,仅供试用,不保证接口可稳定调用。 > - 本模块接口为系统接口,三方应用不支持调用。 -该模块提供卷、磁盘查询和管理的相关功能:包括查询卷信息,对卷的挂载卸载、对磁盘分区以及卷的格式化等功能。 - ## 导入模块 ```js diff --git a/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md b/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md index b373835ac23d159b561e1b7d39da7df4ab1f9de5..27c952f8c6c970bfa4cb427dd22baec0e61db6f4 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md +++ b/zh-cn/application-dev/reference/arkui-js/js-appendix-types.md @@ -12,7 +12,7 @@ | 名称 | 类型定义 | 描述 | | ----- | --------------------- | ---------------------------------------- | -| color | string \|颜色枚举字符串 | 用于描述颜色信息,JS脚本中不支持颜色枚举格式。
字符串格式如下:
- 'rgb(255, 255, 255)'
- 'rgba(255, 255, 255, 1.0)'
- HEX格式:'\#rrggbb','\#aarrggbb'
- 枚举格式:'black','white'。 | +| color | string \| 颜色枚举字符串 | 用于描述颜色信息,JS脚本中不支持颜色枚举格式。
字符串格式如下:
- 'rgb(255, 255, 255)'
- 'rgba(255, 255, 255, 1.0)'
- HEX格式:'\#rrggbb','\#aarrggbb'
- 枚举格式:'black','white'。 | **表1** 当前支持的颜色枚举 diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker-view.md b/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker-view.md index f3536b5a11228a563eb41167dbc83b5bcb4c7f7d..e21a14a7b1d5e5031a86efad273128c312d2fb98 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker-view.md +++ b/zh-cn/application-dev/reference/arkui-js/js-components-basic-picker-view.md @@ -70,7 +70,7 @@ | 名称 | 类型 | 默认值 | 必填 | 描述 | | -------------------------------- | -------------- | ---------- | ---- | ---------------------------------------- | -| color | <color> | \#ffffff | 否 | 候选项字体颜色。 | +| color | <color> | \#ffffff | 否 | 候选项字体颜色。 | | font-size | <length> | 16px | 否 | 候选项字体尺寸,类型length,单位px。 | | selected-color | <color> | #ff0a69f7 | 否 | 选中项字体颜色。 | | selected-font-size | <length> | 20px | 否 | 选中项字体尺寸,类型length,单位px。 | diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md b/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md index 3b1f7bcbd8ec579a034c72db625fff92148e9cd8..e562b568c928e919ca2ec37618d76e12082d4965 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md +++ b/zh-cn/application-dev/reference/arkui-js/js-components-common-animation.md @@ -14,7 +14,7 @@ | animation-name | string | - | 指定\@keyframes,详见表 @keyframes属性说明。 | | animation-delay | <time> | 0 | 定义动画播放的延迟时间。支持的单位为[s(秒)\|ms(毫秒) ],默认单位为ms,格式为:1000ms或1s。 | | animation-duration | <time> | 0 | 定义一个动画周期。支持的单位为[s(秒)\|ms(毫秒) ],默认单位为ms,格式为:1000ms或1s。
必须设置animation-duration 样式,否则时长为 0将不会播放动画。 | -| animation-iteration-count | number  \| infinite | 1 | 定义动画播放的次数,默认播放一次,可通过设置为infinite无限次播放。 | +| animation-iteration-count | number \| infinite | 1 | 定义动画播放的次数,默认播放一次,可通过设置为infinite无限次播放。 | | animation-timing-function | string | ease
| 描述动画执行的速度曲线,用于使动画更为平滑。
可选项有:
- linear:表示动画从头到尾的速度都是相同的。
- ease:表示动画以低速开始,然后加快,在结束前变慢,cubic-bezier(0.25, 0.1, 0.25, 1.0)。
- ease-in:表示动画以低速开始,cubic-bezier(0.42, 0.0, 1.0, 1.0)。
- ease-out:表示动画以低速结束,cubic-bezier(0.0, 0.0, 0.58, 1.0)。
- ease-in-out:表示动画以低速开始和结束,cubic-bezier(0.42, 0.0, 0.58, 1.0)。
- friction:阻尼曲线,cubic-bezier(0.2, 0.0, 0.2, 1.0)。
- extreme-deceleration:急缓曲线,cubic-bezier(0.0, 0.0, 0.0, 1.0)。
- sharp:锐利曲线,cubic-bezier(0.33, 0.0, 0.67, 1.0)。
- rhythm:节奏曲线,cubic-bezier(0.7, 0.0, 0.2, 1.0)。
- smooth:平滑曲线,cubic-bezier(0.4, 0.0, 0.4, 1.0)。
- cubic-bezier:在三次贝塞尔函数中定义动画变化过程,入参的x和y值必须处于0-1之间。
- steps: 阶梯曲线6+。语法:steps(number[, end\|start]);number必须设置,支持的类型为正整数。第二个参数可选,表示在每个间隔的起点或是终点发生阶跃变化,支持设置end或start,默认值为end。 | | animation-direction6+ | string | normal | 指定动画的播放模式:
- normal: 动画正向循环播放。
- reverse: 动画反向循环播放。
- alternate:动画交替循环播放,奇数次正向播放,偶数次反向播放。
- alternate-reverse:动画反向交替循环播放,奇数次反向播放,偶数次正向播放。 | | animation-fill-mode | string | none | 指定动画开始和结束的状态:
- none:在动画执行之前和之后都不会应用任何样式到目标上。
- forwards:在动画结束后,目标将保留动画结束时的状态(在最后一个关键帧中定义)。
- backwards6+:动画将在animation-delay期间应用第一个关键帧中定义的值。当animation-direction为"normal"或"alternate"时应用from关键帧中的值,当animation-direction为"reverse"或"alternate-reverse"时应用to关键帧中的值。
- both6+:动画将遵循forwards和backwards的规则,从而在两个方向上扩展动画属性。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md index 77cb9b4b746936a49c4e578a23ee9fb9271894f1..3c7a4849bd79e2922f5f452f1819d130cb9b7359 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkbox.md @@ -30,7 +30,7 @@ Checkbox( name?: string, group?: string ) | 名称 | 参数类型 | 默认值 | 描述 | | ------------- | ------- | ------ | -------- | -| select | bool | false | 设置多选框是否选中。 | +| select | boolean | false | 设置多选框是否选中。 | | selectedColor | Color | - | 设置多选框选中状态颜色。 | ## 事件 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md index 65b6a946dc269e8de45f315118b8940f3b667869..2e4ce7801249b39e17703c36676f4214c1b528bf 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-checkboxgroup.md @@ -29,7 +29,7 @@ CheckboxGroup( group?: string ) | 名称 | 参数类型 | 默认值 | 描述 | | -------- | -------- | -------- | -------- | -| selectAll | bool | false | 设置是否全选。 | +| selectAll | boolean | false | 设置是否全选。 | | selectedColor | Color | - | 设置被选中或部分选中状态的颜色。 | ## 事件 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md index 38359855ffc041cd64e335ccdadb792677888ccd..c2d7304ceeedfb3237be0b2dbdaa5897d869a6b5 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md @@ -166,8 +166,6 @@ struct ImageExample1 { @Entry @Component struct ImageExample2 { - @State width: number = 100 - @State height: number = 100 build() { Column({ space: 10 }) { diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-navigation.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-navigation.md index b2d0500e8ad7a6d31755105dc6caced9cb298708..e43d6028a406de05e4b632fa65f7932a6ef4d66b 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-navigation.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-navigation.md @@ -29,7 +29,7 @@ Navigation() | 名称 | 参数类型 | 默认值 | 描述 | | -------------- | ---------------------------------------- | ------------------------ | ---------------------------------------- | | title | string \| [CustomBuilder](../../ui/ts-types.md) | - | 页面标题。 | -| subtitle | string | - | 页面副标题。 | +| subTitle | string | - | 页面副标题。 | | menus | Arrayitems:[
Object
] }
\| [CustomBuilder](../../ui/ts-types.md) | - | 设置工具栏内容。
items: 工具栏所有项。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md index ca22fa724957cef0caace1fe0e86ab45450fd1ab..0fb1be44be8c9363ac88b886c8f255cbaeea99a2 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-imagebitmap.md @@ -4,13 +4,12 @@ > 从 API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 -CanvasImageData对象可以存储canvas渲染的像素数据。 +ImageBitmap对象可以存储canvas渲染的像素数据。 ## 属性 | 属性 | 类型 | 描述 | | -------- | -------- | -------- | -| width | number | 矩形区域实际像素宽度。 | -| height | number | 矩形区域实际像素高度。 | -| data | <Uint8ClampedArray> | 一维数组,保存了相应的颜色数据,数据值范围为0到255。 | +| width | number | ImageBitmap的像素宽度。 | +| height | number | ImageBitmap的像素高度。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md index f4c9b8d0a1d429f81902771a469b1d0abac406e3..5316b11819060e425a465fc8795faa05cb54f20a 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md @@ -32,7 +32,7 @@ Grid() | columnsGap | Length | 0 | 用于设置列与列的间距。 | | rowsGap | Length | 0 | 用于设置行与行的间距。 | | editMode8+ | boolean | flase | 是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部[GridItem](ts-container-griditem.md)。 | -| layoutDirection8+ | [LayoutDirection](ts-appendix-enums.md) | LayoutDirection.Row |设置布局的主轴方向,目前支持的主轴布局方向如下:
- LayoutDirection.Row:沿水平方向布局,即先填满一列,再去填下一列。
- LayoutDirection.Column:沿垂直方向布局,即先填满一行,再去填下一行。| +| layoutDirection8+ | number | 0 |设置布局的主轴方向,目前支持的主轴布局方向如下:
- 0:主轴布局方向沿水平方向布局,即先填满一列,再去填下一列。
- 1:主轴布局方向沿垂直方向布局,即先填满一行,再去填下一行。| | maxCount8+ | number | 1 | 当layoutDirection是Row时,表示可显示的最大行数
当layoutDirection是Column时,表示可显示的最大列数。 | | minCount8+ | number | 1 | 当layoutDirection是Row时,表示可显示的最小行数
当layoutDirection是Column时,表示可显示的最小列数。 | | cellLength8+ | number | 0 | 当layoutDirection是Row时,表示一行的高度
当layoutDirection是Column时,表示一列的宽度。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md index e42eeb0ae4deebc2b34425ef3540f436fe660b77..b393437cc7d44e39be337cce207ae25bd914dff9 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md @@ -19,13 +19,14 @@ ## 接口 -List(value:{space?: number, initialIndex?: number}) +List(value:{space?: number | string, initialIndex?: number, scroller?: Scroller}) - 参数 | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | -------- | -------- | -------- | - | space | number | 否 | 0 | 列表项间距。 | + | space | number \| string | 否 | 0 | 列表项间距。 | | initialIndex | number | 否 | 0 | 设置当前List初次加载时视口起始位置显示的item,即显示第一个item,如设置的序号超过了最后一个item的序号,则设置不生效。 | + | scroller | [Scroller](ts-container-scroll.md#scroller) | 是 | - | 可滚动组件的控制器。用于与可滚动组件进行绑定。 | ## 属性 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md index e09e59c09b93a3092f5bc8cbf29c1847c9fa14bc..df2ace39644d48184188f66496ca8e03e40b48ed 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-refresh.md @@ -15,7 +15,7 @@ ## 接口 -Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number\}\) +Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number | string\}\) - 参数 @@ -23,7 +23,7 @@ Refresh\(value: \{refreshing: boolean, offset?: Length, friction?: number\}\) | -------- | -------- | -------- | -------- | -------- | | refreshing | boolean | 是 | - | 当前组件是否正在刷新。 | | offset | Length | 否 | 16 | 刷新组件静止时距离父组件顶部的距离。| - | friction | number | 否 | 62 | 下拉摩擦系数,取值范围为0到100。
- 0表示下拉刷新容器不跟随手势下拉而下拉。
- 100表示下拉刷新容器紧紧跟随手势下拉而下拉。
- 数值越大,下拉刷新容器跟随手势下拉的反应越灵敏。 | + | friction | number \| string | 否 | 62 | 下拉摩擦系数,取值范围为0到100。
- 0表示下拉刷新容器不跟随手势下拉而下拉。
- 100表示下拉刷新容器紧紧跟随手势下拉而下拉。
- 数值越大,下拉刷新容器跟随手势下拉的反应越灵敏。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md b/zh-cn/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md index 25f0c7eb32c84db59bf2d63916588465c67ef080..55a02d2e051dde2afa812beb2e0f09b1fa5ef1d3 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-methods-alert-dialog-box.md @@ -28,8 +28,8 @@ - paramObject2参数 | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | -------- | -------- | -------- | -------- | -------- | - | title | string \|& [Resource](../../ui/ts-types.md#resource类型) | 否 | - | 弹窗标题。 | - | message | string \|& [Resource](../../ui/ts-types.md#resource类型) | 是 | - | 弹窗内容。 | + | title | string \| [Resource](../../ui/ts-types.md#resource类型) | 否 | - | 弹窗标题。 | + | message | string \| [Resource](../../ui/ts-types.md#resource类型) | 是 | - | 弹窗内容。 | | autoCancel | boolean | 否 | true | 点击遮障层时,是否关闭弹窗。 | | primaryButton | {
value: string \| [Resource](../../ui/ts-types.md#resource类型),
fontColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md#resource类型),
backgroundColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md#resource类型),
action: () => void;
} | 否 | - | 按钮的文本内容、文本色、按钮背景色和点击回调。 | | secondaryButton | {
value: string \| [Resource](../../ui/ts-types.md#resource类型),
fontColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md#resource类型),
backgroundColor?: Color \| number \| string \| [Resource](../../ui/ts-types.md#resource类型),
action: () => void;
} | 否 | - | 按钮的文本内容、文本色、按钮背景色和点击回调。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-motion-path-animation.md b/zh-cn/application-dev/reference/arkui-ts/ts-motion-path-animation.md index 365b51a2b868bf281dbe75ee12b8f01a371b29da..010aca58e37c837102837ed85892405d358a262d 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-motion-path-animation.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-motion-path-animation.md @@ -21,8 +21,6 @@ @Entry @Component struct MotionPathExample { - @State offsetX: number = 0 - @State offsetY: number = 0 @State toggle: boolean = true build() { diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md b/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md index 18528e264f3ba1b0848c5303ea8fc8688e2daecc..b7941b7bae410cb789e17b6c72facc89139dbe69 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-shared-elements.md @@ -30,8 +30,6 @@ @Entry @Component struct SharedTransitionExample { - @State scale: number = 1 - @State opacity: number = 1 @State active: boolean = false build() { diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md index ab0939f23f5884dcc7b33df44f4ba00c1a42c231..b372ccc183263a9321011a8c6df308cd36fa6a6a 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-component-id.md @@ -171,17 +171,17 @@ struct IdExample { console.info(getInspectorTree()) this.text = "Button 'click to start' is clicked" setTimeout(() => { - sendEventByKey("longclick", 11, "") + sendEventByKey("longClick", 11, "") }, 2000) }).id('click') Button() { - Text('longclick').fontSize(25).fontWeight(FontWeight.Bold) + Text('longClick').fontSize(25).fontWeight(FontWeight.Bold) }.margin({ top: 20 }).backgroundColor('#0D9FFB') .gesture( LongPressGesture().onActionEnd(() => { console.info('long clicked') - this.text = "Button 'longclick' is longclicked" + this.text = "Button 'longClick' is longclicked" setTimeout(() => { let rect = Utils.getComponentRect('onTouch') let touchPoint: TouchObject = { @@ -196,7 +196,7 @@ struct IdExample { touchPoint.type = TouchType.Up sendTouchEvent(touchPoint) }, 2000) - })).id('longclick') + })).id('longClick') Button() { Text('onTouch').fontSize(25).fontWeight(FontWeight.Bold) diff --git a/zh-cn/application-dev/webgl/webgl-guidelines.md b/zh-cn/application-dev/webgl/webgl-guidelines.md index be1e993e15025856a82dccd90e02c2142275402a..972237b3ea2fd222b9cd1b9e1ed8c43ca48488cd 100644 --- a/zh-cn/application-dev/webgl/webgl-guidelines.md +++ b/zh-cn/application-dev/webgl/webgl-guidelines.md @@ -669,7 +669,7 @@ WebGL主要帮助开发者在前端开发中完成图形图像的相关处理, // 初始化着色器 if (!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) { - console.log('Failed to intialize shaders.'); + console.log('Failed to initialize shaders.'); return; } diff --git a/zh-cn/contribute/template/concept-overview-template.md b/zh-cn/contribute/template/concept-overview-template.md deleted file mode 100644 index 9ec95b2f1ad40a317bedca1a86ff751bdb5c530a..0000000000000000000000000000000000000000 --- a/zh-cn/contribute/template/concept-overview-template.md +++ /dev/null @@ -1,111 +0,0 @@ -# 概述 - -## 基本概念 - -*【 **写作要求**】* - -*必选,描述本开发任务相关的基本概念,帮助开发者更好的理解开发任务。* *写作要求见下,完成写作后,请逐项自检*。 - -| 内容要求 | 是否满足 | -| -------- | -------- | -| 业界通用的概念不用赘述。 | | -| 注意使用业界通用术语来表达,不用开发者无法理解的内部语言。 | | - - -【写作样例】 - - -XX系统音频模块支持音频业务的开发,提供音频相关的功能,主要包括音频播放、音频采集、音量管理和短音播放等。 - - -在进行应用的开发前,开发者应了解以下基本概念: - - -- 采样 - 采样就是把模拟信号数字化的过程,所有的模拟信号都需要通过采样转换为可以用0101来表示的数字信号。 - -- 采样率 - 采样率为每秒从连续信号中提取并组成离散信号的采样次数,单位用赫兹(Hz)来表示。通常人耳能听到频率范围大约在20Hz~20kHz之间的声音。常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。 - -- 声道 - 声道是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或回放时相应的扬声器数量。 - -- 音频帧 - 音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。这个时间被称之为“采样时间”,其长度没有特别的标准,它是根据编解码器和具体应用的需求来决定的。 - - -## 运作机制 - -*【 **写作要求**】* - -*可选。如果机制比较简单,通过前面基本概念就可以说清楚,此章节可以不用提供,删除标题即可*。 - -*描述实现原理介绍机制,如关键步骤相关接口调用时机和触发时机,帮助开发者了解该功能的基本运作原理,以便更好的理解开发任务和定位问题*。 - -*写作要求见下,完成写作后,请逐项自检*。 - -| 内容要求 | 是否满足 | -| -------- | -------- | -| 仅描述开发任务相关的原理。 | | -| 尽量图文配合,一般使用时序图、流程图等形式。文字描述与图形描述匹配。 | | - -【写作样例-1】 - -- 信号量初始化,为配置的N个信号量申请内存(N值可以由用户自行配置,受内存限制),并把所有的信号量初始化成未使用,并加入到未使用链表中供系统使用。 - -- 信号量创建,从未使用的信号量链表中获取一个信号量资源,并设定初值。 - -- 信号量申请,若其计数器值大于0,则直接减1返回成功。否则任务阻塞,等待其它任务释放该信号量,等待的超时时间可设定。当任务被一个信号量阻塞时,将该任务挂到信号量等待任务队列的队尾。 - -- 信号量释放,若没有任务等待该信号量,则直接将计数器加1返回。否则唤醒该信号量等待任务队列上的第一个任务。 - -- 信号量删除,将正在使用的信号量置为未使用信号量,并挂回到未使用链表。 - -- 信号量允许多个任务在同一时刻访问同一资源,但会限制同一时刻访问此资源的最大任务数目。访问同一资源的任务数达到该资源的最大数量时,会阻塞其他试图获取该资源的任务,直到有任务释放该信号量。 - - -【写作样例-2】 - -**互斥锁运作原理** - -多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的,需要任务进行独占式处理。互斥锁怎样来避免这种冲突呢? - -用互斥锁处理非共享资源的同步访问时,如果有任务访问该资源,则互斥锁为加锁状态。此时其他任务如果想访问这个公共资源则会被阻塞,直到互斥锁被持有该锁的任务释放后,其他任务才能重新访问该公共资源,此时互斥锁再次上锁,如此确保同一时刻只有一个任务正在访问这个公共资源,保证了公共资源操作的完整性。 - - - -## 约束与限制 - -【写作要求】 - -*必选*。 *描述本开发任务过程中* *的约束条件,以及此操作约束带来相应的负面影响,包括但不限于如下几方面*: - -- **功能限制**: - - 功能使用范围(明确不支持的场景)。 - - 规格限制。 - -* **操作限制**: - - * 已知问题的操作。 - * 潜在风险的操作(如引起性能降低)。 - * 引起性能降低的操作。 - -写作要求见下,完成写作后,请逐项自检。 - -| 内容要求 | 是否满足 | -| -------- | -------- | -| 明确功能限制或操作限制。 | | -| 约束对指导任务开发有影响或体验有感知,否则不用体现。 | | -| 容易出错的操作在步骤里描述,不在此体现。 | | - -【**写作样例**】 - -**互斥锁的约束与限制**: - -- 两个任务不能对同一把互斥锁加锁。如果某任务对已被持有的互斥锁加锁,则该任务会被挂起,直到持有该锁的任务对互斥锁解锁,才能执行对这把互斥锁的加锁操作。 - -- 互斥锁不能在中断服务程序中使用。 - -- XXX作为实时操作系统需要保证任务调度的实时性,尽量避免任务的长时间阻塞,因此在获得互斥锁之后,应该尽快释放互斥锁。 - -- 持有互斥锁的过程中,不得再调用LOS_TaskPriSet等接口更改持有互斥锁任务的优先级。 diff --git a/zh-cn/contribute/template/figures/how-distributedobject-works.png b/zh-cn/contribute/template/figures/how-distributedobject-works.png new file mode 100644 index 0000000000000000000000000000000000000000..9af60f511701f7ef7e8424492d42f247c6088b28 Binary files /dev/null and b/zh-cn/contribute/template/figures/how-distributedobject-works.png differ diff --git a/zh-cn/contribute/template/guide-template.md b/zh-cn/contribute/template/guide-template.md index 2b268c09b752d943d4f066900052cb7dea3a91e7..9e6581f02f345229e04e5e36a870581171e522b8 100644 --- a/zh-cn/contribute/template/guide-template.md +++ b/zh-cn/contribute/template/guide-template.md @@ -1,159 +1,405 @@ -# 开发指导 +# 开发指南写作模板 -***【写作要求】*** +> **注意:** +> _1、本模板提供推荐的开发指南文档框架、典型知识点写作要求及写作指导。实际写作中,应视具体__方案/特性/功能/模块__情况,先完成开发者任务场景分析与开发指南大纲设计,然后参照本模板写作具体内容。_ +> +> _2、文档写作时,两级标题之间的位置不允许添加内容。_ +> +> _3、所有斜体为写作指导,正式文档中注意全部删除。_ -*必选*。 *描述各个场景下,开发者如何完成开发任务*。 *可根据多场景任务增加章节。写作要求见下,完成写作后,请逐项自检*。 +## xxx概述 -| 内容要求 | 是否满足 | -| -------- | -------- | -| 如果有多个场景,请写起多个“开发指导”章节,如音频播放开发指导、音量管理开发指导、短音播放开发指导。 | | -| 标题尽量使用“动词+名词”的句式表述任务操作。 | | +_必选。根据具体__方案/特性/功能/模块__的场景划分情况,此处的“xxx概述”与具体任务场景下的“任务场景n概述”按需提供一处或共存,具体的:_ +_1、此处的“xxx概述”":用于承载开发者需要了解的、本特性各任务场景通用的概述内容。如无,则删除。_ -## 场景介绍 +_2、“任务场景n概述”:用于承载任务场景n直接相关的概述内容,知识点构成及写作要点与“xxx概述”相同,包括任务场景n简介、任务场景n直接相关的基本概念、任务场景n直接相关的实现原理、任务场景n直接相关的约束与限制、任务场景n直接相关的相关实例。如无,则删除。_ -***【写作要求】*** +**_【开发指南总体写作要求】_** -*必选*。 *描述在什么情景下解决什么问题,最终达到什么样的效果*。应用SCQA描述方法: +**_1、目标对象:_**_面向内、外部开发者(含产品经理、开发人员)。面向UX设计师的指导文档通常由专门的UX设计规范承载,不在开发指南范畴。本文如需提及,以超链接方式指向对应UX规范即可。_ -- S:situation(情景),由大家都熟悉的的情景,事实引入。 +_**2、内容定位:**介绍__方案/特性/功能/模块__是什么(What)、能做什么(Why),以及如何进行相关应用程序/设备的设计、开发、发布上架(How)。支撑开发者学习必要知识,最终在实际开发活动中完成既定任务目标。_ -- C:complication(冲突),但是实际情况往往和我们的要求有冲突。 +_**3、用户视角:**变身开发者,始终以开发者视角,提供开发者关注的、可感知和使用的内容。_ -- Q:question(疑问),怎么办? +_**4、面向任务:**聚焦开发者实际任务,完整、正确、易用,具备权威指导性。_ -- A:answer(回答),我们的解决方案是 … +_5、不要受限:模板只是基础框架,不要僵化。_ -*写作要求见下,完成写作后,请逐项自检*。 -| 内容要求 | 是否满足 | -| -------- | -------- | -| 背景原因、什么时候在哪、做了什么操作、最终解决什么问题或操作效果都明确。 | | +### xxx简介 -【**写作样例**】 +_必选。_ -音频播放的主要工作是将音频数据转码为可听见的音频模拟信号并通过输出设备进行播放,同时对播放任务进行管理。 +_**【开发者关注点】**_ +_这个方案/特性/功能/模块是什么(定义-what)?我为什么要用它?它能解决哪些问题或带来哪些收益?(目的/客户价值-why)_ -## 接口说明 +_**【写作要点】**_ -*【**写作要求**】* +- _提供易理解的场景化描述。__可参考如下SCQA方式介绍方案/特性/功能/模块客户面的功能场景、特点。_ + - _S:situation(情景),由大家都熟悉的的情景、事实引入。_ + - _C:complication(冲突),但是实际情况往往和我们的要求有冲突。_ + - _Q:question(疑问),怎么办?_ + - _A:answer(回答),我们的解决方案是 …_ -*必选*。 *描述本开发指导相关的接口有哪些,旨在要开发者在开发前有大体了解,提升开发效率*。 *写作要求见下,完成写作后,请逐项自检*。 +- _抽象的概念要具象化,可以适当引入2C视角(如UX中的场景效果)的内容,帮助理解。_ -| 内容要求 | 是否满足 | -| -------- | -------- | -| 不在本开发任务的接口无需提供。 | | -| 如果接口太多,超过10个,可以提供主要的接口 | | +**_【写作要求】_** -【**写作样例**】 +- _清晰易懂,避免模糊、晦涩、有歧义的表述。_ -音频播放开放能力如下:AudioRenderer类,具体的API详见接口文档。 +- _仅使用必要的术语、缩略语或专有名词,并给出解释(提供到术语表链接也可以)。_ -**表1** 音频播放API接口功能介绍 +- _文中使用的术语、缩略语或专有名词应全文保持一致。_ -| 接口名 | 描述 | -| -------- | -------- | -| AudioRenderer(AudioRendererInfo audioRendererInfo, PlayMode pm) throws IllegalArgumentException | 构造函数,设置播放相关音频参数和播放模式,使用默认播放设备 | -| AudioRenderer(AudioRendererInfo audioRendererInfo, PlayMode pm, AudioDeviceDescriptor outputDevice) throws IllegalArgumentException | 构造函数,设置播放相关音频参数、播放模式和播放设备 | -| boolean play() | 播放音频流 | -| boolean write(byte[] data, int offset, int size) | 将音频数据以byte流写入音频接收器以进行播放 | +### xxx基本概念 -## 开发步骤 +_可选。此处放置以下各任务场景通用的基本概念。_ -*【**写作要求**】* +_**【开发者关注点】**_ - *必选。描述* *开发的整体过程,便于开发者快速完成开发*。*具体写作要求见下,完成写作后,请逐项自检下*。 +_要使用该方案/特性/功能/模块,有哪些独有概念是我需要了解的?_ -| 内容要求 | 是否满足 | -| -------- | -------- | -| **如何写好步骤** | | -| 步骤完整:提供必需的步骤,顺利指导完成操作,无缺失。 | | -| 脉络清楚:文档逻辑清晰、合理。文档前面的概述、准备、操作围绕一条线描述,不能章节断裂或前后矛盾的现象。 | | -| 任务句式:标题或句子尽量使用“动词+名词”的句式表述动作。 | | -| 预防提前:操作过程中的限制、易错的、有潜在风险的,要提前描述,使用DOCS平台的“插入> 说明 > 须知”描述。 | | -| 步骤清晰-1:无论步骤简单或复杂,都需要写步骤目的,即为什么做。 | | -| 步骤清晰-2:明确在什么环境下,使用什么工具,做什么操作,怎么做该操作。 | | -| 步骤具体:如果操作可选,要明确可选条件。 | | -| 在开发步骤执行完成后,及时明确操作正确的标准。 | | -| **如何写好代码段** | | -| 代码涉及开发者拷贝的命令,必须用可编辑的报文呈现,避免截图,使用代码片段包裹。 | | -| 代码中关键段用蓝色(RGB:0.0.255)突出显示,关键步骤要有注释说明。 | | -| 代码显示符合代码缩进要求。 | | -| 步骤涉及接口调用,清晰给出接口及其使用说明或示例代码,代码来源于具体实例。 | | +**_【写作要点】_** -【**写作样例**】 +- _仅提供开发者任务中必须的概念。_ -1. 构造音频流参数的数据结构AudioStreamInfo,推荐使用AudioStreamInfo.Builder类来构造,模板如下,模板中设置的均为AudioStreamInfo.Builder类的默认值,根据音频流的具体规格来设置具体参数。 +- _运作机制、约束限制、开发过程等多个章节相关的概念在此介绍,仅某个章节用到的概念在对应章节中介绍。_ + +- _业界通用的概念不用在此赘述。__注意使用业界通用术语来表达,不用华为研发内部语言。_ + +- _概念之间如有逻辑关系,推荐使用图形描述。_ + +**_【写作要求】_** + +- _清晰易懂,避免模糊、晦涩、有歧义的表述。_ + +- _仅使用必要的术语、缩略语或专有名词,并给出解释(提供到术语表链接也可以)。_ + +- _文中使用的术语、缩略语或专有名词应全文保持一致。_ + +**【写作样例】** + +在进行关系型数据库开发前,开发者应了解以下基本概念: + +- **关系型数据库** + +基于关系模型来管理数据的数据库,以行和列的形式存储数据。 + +- **谓词** + + 数据库中用来代表数据实体的性质、特征或者数据实体之间关系的词项,主要用来定义数据库的操作条件。 + +- **结果集** + + 指用户查询之后的结果集合,可以对数据进行访问。结果集提供了灵活的数据访问方式,可以更方便的拿到用户想要的数据。 + + +### 实现原理 + +_可选。此处放置以下各任务场景通用的实现原理。_ + +_**【开发者关注点】**_ + +_该方案/特性/功能/模块是如何工作的?关键步骤相关接口调用和触发时机?我要了解其原理,以更好的使用、调试它。_ + +**_【写作要点】_** + +- _如果原理简单,通过前面基本概念就可以说清楚,此章节可以不提供,删除即可。_ + +- _仅描述开发者任务(使用或接入)过程中可见的机制原理,不要提供开发者不可见的内部实现。_ + +- _尽量图文结合,一般使用时序图、流程图等形式。文字描述与图形描述匹配。_ + +- _注意不要泄密。_ + +**_【写作要求】_** + +- _清晰易懂,避免模糊、晦涩、有歧义的表述。_ + +- _仅使用必要的术语、缩略语或专有名词,并给出解释(提供到术语表链接也可以)。_ + +- _文中使用的术语、缩略语或专有名词应全文保持一致。_ + +**【写作样例】** + +分布式数据对象生长在分布式内存数据库之上,在分布式内存数据库上进行了JS对象型的封装,能像操作本地变量一样操作分布式数据对象,数据的跨设备同步由系统自动完成。 + +**图1** 分布式数据对象运行机制 + +![how-distributedobject-works](figures/how-distributedobject-works.png) + + +### 约束与限制 + +_可选。此处放置以下各任务场景通用的约束与限制。_ + +_**【开发者关注点】**_ + +_我要__使用该方案/特性/功能/模块,有什么约束条件吗?__该方案/特性/功能/模块__实现的程度如何,能满足我的需求吗?_ + +**_【写作要点】_** + +- _描述对开发活动有影响、可感知的约束限制,及其带来的影响,包括但不限于如下几方面:_ + - **_功能限制_** + - _功能使用范围(明确不支持的场景)。_ + - _规格限制。_ + - **_操作限制_** + - _已知问题的操作。_ + - _潜在风险的操作(如引起性能降低)。_ + +- _容易出错的操作在步骤里描述,不在此体现。_ + +**【写作样例】** + +- 不同设备间只有相同bundleName的应用才能直接同步。 + +- 不建议创建过多分布式数据对象,每个分布式数据对象将占用100-150KB内存。 + +- 每个分布式数据对象大小不超过500KB。 + + +### 相关实例 + +_可选。此处放置以下各任务场景通用的相关实例。_ + +**_【开发者关注点】_** + +_有哪些Sample code、Codelabs、Demo工程可供学习、参考。_ + +**_【写作要点】_** + +_已发布的Sample code、Codelabs、Demo工程包,请在此处提供链接(一般为Gitee链接)。__注意:不允许将工程包等作为附件插入到文档中。_ + +**【写作样例】** + +针对Ability开发,有以下相关实例可供参考: + +- [Page内和Page间导航跳转](https://gitee.com/openharmony/codelabs/tree/master/Ability/PageAbility) + + +## 环境准备 + +_可选。_ + +_根据具体的开发场景分析分解情况,本节内容可按需放入“开发指导”下,作为“前提条件”或“开发准备”与具体场景的“开发步骤”就近放置。_ + +_明确如何准备开发环境(如软硬件配置要求、工具要求、设备要求等)__。_ + +_如果不涉及上述特殊要求,此章节删除。_ + + +### 环境要求 + +**_【写作要求】_** + +_明确开发环境所需要的软硬件配置,旨在要用户提前准备环境。如果软硬件内容比较多,可以再增加子标题。_ + +**【写作样例】** + +Hi3861开发板对环境配置的特有要求如下表所示。 + + **表1** Hi3861开发板对环境配置的特有要求 + +| 平台类型 | 开发工具 | 用途 | 获取途径 | +| -------- | -------- | -------- | -------- | +| Linux服务器 | SCons3.0.4+ | 编译构建工具 | 通过互联网获取 | +| Linux服务器 | build-essential | 编译依赖的基础软件包 | 通过互联网获取 | + + +### 搭建环境 + +**_【写作要求】_** + +_描述搭建开发环境的具体步骤,如果内容比较多,可以再区分章节,如:搭建编译基础环境、搭建编译工具环境等。_ + +**【写作样例】** + +1. 打开Linux编译服务器终端。 + +2. 运行如下命令,安装工具安装包。 + ``` - AudioStreamInfo audioStreamInfo = new AudioStreamInfo.Builder() - .sampleRate( AudioStreamInfo.SAMPLE_RATE_UNSPECIFIED) - .audioStreamFlag(AudioStreamInfo.AudioStreamFlag.AUDIO_STREAM_FLAG_NONE) - .encodingFormat(AudioStreamInfo.EncodingFormat.ENCODING_INVALID) - .channelMask(AudioStreamInfo.ChannelMask.CHANNEL_INVALID) - .streamUsage(AudioStreamInfo.StreamUsage.STREAM_USAGE_UNKNOWN) - .build(); + xxxxx ``` - 以真实的播放pcm流为例: - ``` - AudioStreamInfo audioStreamInfo = new AudioStreamInfo.Builder().sampleRate(44100)//44.1kHz - .audioStreamFlag(AudioStreamInfo.AudioStreamFlag.AUDIO_STREAM_FLAG_MAY_DUCK)//混音 - .encodingFormat(AudioStreamInfo.EncodingFormat.ENCODING_PCM_16BIT)//16-bit PCM - .channelMask(AudioStreamInfo.ChannelMask.CHANNEL_OUT_STEREO)//双声道 - .streamUsage(AudioStreamInfo.StreamUsage.STREAM_USAGE_MEDIA)//媒体类音频 - .build(); - ``` - -2. 使用步骤1创建的音频流构建音频播放的参数结构AudioRendererInfo,推荐使用AudioRendererInfo.Builder类来构造,模板如下,模板中设置的均为AudioRendererInfo.Builder类的默认值,根据音频播放的具体规格来设置具体参数。 +3. 运行如下命令,查看是否安装成功。 + ``` - AudioRendererInfo audioRendererInfo = new AudioRendererInfo.Builder() - .audioStreamInfo(audioStreamInfo) - .audioStreamOutputFlag(AudioRendererInfo.AudioStreamOutputFlag.AUDIO_STREAM_OUTPUT_FLAG_NONE) - .bufferSizeInBytes(0) - .distributedDeviceId("") - .isOffload(false) - .sessionID(AudioRendererInfo.SESSION_ID_UNSPECIFIED) - .build(); + xxxxx ``` - 以真实的播放pcm流为例: - ``` - AudioRendererInfo audioRendererInfo = new AudioRendererInfo.Builder() - .audioStreamInfo(audioStreamInfo) - .audioStreamOutputFlag(AudioRendererInfo.AudioStreamOutputFlag.AUDIO_STREAM_OUTPUT_FLAG_DIRECT_PCM)//pcm格式的输出流 - .bufferSizeInBytes(100) - .distributedDeviceId("E54***5E8")//使用分布式设备E54***5E8播放 - .isOffload(false)//false表示分段传输buffer并播放,true表示整个音频流一次性传输到HAL层播放 - .build(); - ``` - -3. 根据要播放音频流指定PlayMode,不同的PlayMode在写数据时存在差异,详情见步骤7,其余播放流程是无区别的。并通过构造函数获取AudioRenderer类的实例化对象。 + +### 检验环境是否搭建成功 + +**_【写作要求】_** + +_可选。环境搭建完成后,需要明确给出环境搭建是否成功的检验标准,也可以与搭建步骤合一。如上述写作样例。_ + + +## 任务场景n(使用具体任务/场景名称替代,只有1个场景时使用特性名称xxx)开发指导 + +_必选。_ + +_**【开发者关注点】**_ + +_我要使用/接入这个方案/特性/功能/模块,需要怎么做(how)?_ + +_**【写作要点】**_ + +_贴近开发者实际开发场景:_ + +- _开发者需要通过哪些任务来达成开发目标,这就是任务场景。_ + +- _任务场景可以有1个或多个,__可按需添加多个“开发指导”章节。__同时要遵循分层分级逻辑,即大场景(任务场景n)->小场景(子任务场景n-x)->任务逻辑(对应“开发流程”)->操作步骤(一个个step)。_ + +### 任务场景n概述 + +_根据具体特性的场景划分情况,“任务场景n概述”与开篇的“xxx概述”按需提供一处或共存,具体的:_ + +_1、开篇的“xxx概述”":用于承载开发者需要了解的、本特性各任务场景通用的概述内容。如无,则删除。_ + +_2、“任务场景n概述”:用于承载任务场景n直接相关的概述内容,知识点构成及写作要点与开篇的“xxx概述”相同,包括任务场景n简介、任务场景n直接相关的基本概念、任务场景n直接相关的实现原理、任务场景n直接相关的约束与限制、任务场景n直接相关的相关实例。如无,则删除。_ + +### 开发流程 + +**_【写作要点】_** + +- _可选。当开发步骤较多(达到5步及以上核心操作)或步骤间存在复杂的逻辑关系时,请提供开发流程,让开发者对他要执行的操作有一个全景认知。_ + +- _一般使用流程图、表。_ + + +### 接口说明 + +**_【写作要求】_** + +- _可选。描述以下开发步骤中有哪些关键接口,并提供接口简介。旨在要开发者在开发前有大体了解,提升开发效率。_ + +- _如果相关接口超过10个,只提供主要接口即可_。 + +- _接口及其涉及的功能必须在文档发布时的对应版本已支持。_ + +**【写作样例】** + +部分接口仅系统应用才可以调用,且需要具备权限:SystemCapability.Notification.Notification ,接口返回值有两种返回形式:callback和promise,下表中为callback形式接口,promise和callback只是返回值方式不一样,功能相同。具体API说明详见[接口文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-notification.md)。 + +**表1** 通知使能开关接口功能介绍 + +| 接口名 | 描述 | +| ------------------------------------------------------------ | ---------------- | +| isNotificationEnabled(bundle: BundleOption, callback: AsyncCallback\): void | 查询通知使能开关 | +| enableNotification(bundle: BundleOption, enable: boolean, callback: AsyncCallback\): void | 设置使能开关 | + + +### 开发步骤 + +**_【写作要求】_** + +_必选。_ + +- _完整性、正确性要求_ + - _描述开发的完整过程,使开发者能够完整(如HAP中代码、资源、第三方库及应用配置文件都涉及哪些相关步骤)、正确的完成开发,不可遗漏关键配置操作。_ + - _文档中的片段示例代码直接拷贝进DevEco Studio中,放入上下文可以正常编译。_ + - _文档中的完整示例代码直接拷贝进DevEco Studio中能够运行,并和文档中描述的执行结果一致。_ + +- _清晰性要求_ + - _每个步骤有清晰的执行主体(who),明确操作目的(why)、操作内容(what/how)、场景(when/where)。使用祈使句描述步骤。_ + - _步骤中如果涉及接口调用,需要清晰给出使用的接口及其使用说明、示例代码。_ + - _关键步骤和示例代码中有开发建议或注意事项的位置,需要提供相关描述(示例代码中采用注释)。_ + 变身开发者,假想自己在操作,可能会提出什么问题?这些问题就是开发者的障碍。需要在文档中提供支撑信息,来帮助开发者处理及应对这些障碍。例如: + - 分支选取原则:步骤分支选取原则、参数选取原则或建议。 + + - 必要的随操作步骤就近放置的补充说明:可能存在的特殊操作、操作权限要求、效率提升技巧、几句话即可说清的背景知识等。 + + - 需要事先告知用户并提醒注意的信息:对其他功能可能造成影响的操作;对系统性能、可靠性可能造成影响的操作;可能导致数据丢失或各类安全问题的操作。这些信息需要在“操作步骤”开始前,以区别于正文的样式加以提示强调。 + + - 防错/纠错信息:针对开发全流程中可能遇到的典型问题,提供预防、定位或恢复指导,以提高开发效率。防错/纠错信息可酌情在“开发步骤”或下文的“常见问题”中承载。 + +- _规范性要求_ + - _保证示例代码的逻辑/语法正确性、书写规范性。涉及用户手机号码、身份证、帐号名等敏感信息均需要打码处理,如186\*\*\*\*\*\*\*\*;涉及IP地址、域名等,需要使用私网IP或相应格式代替,如xx.xx.xx.xx、www.example.com,禁止使用真实IP地址、域名。_ + - _代码显示符合代码缩进要求。缩进不要用tab键,改为4个空格,否则上网格式错乱。_ + +**【写作样例-节选】** + +1. 导入相关模块。 + + ```javascript + import formBindingData from '@ohos.application.formBindingData' + import formInfo from '@ohos.application.formInfo' + import formProvider from '@ohos.application.formProvider' + ``` -4. 播放任务结束后,调用AudioRenderer实例化对象的release()释放资源。 +2. 实现LifecycleForm生命周期接口。 + + ```javascript + export default { + onCreate(want) { + console.log('FormAbility onCreate'); + // 由开发人员自行实现,将创建的卡片信息持久化,以便在下次获取/更新该卡片实例时进行使用 + let obj = { + "title": "titleOnCreate", + "detail": "detailOnCreate" + }; + let formData = formBindingData.createFormBindingData(obj); + return formData; + }, + onCastToNormal(formId) { + // 使用方将临时卡片转换为常态卡片触发,提供方需要做相应的处理 + console.log('FormAbility onCastToNormal'); + }, + } + ``` + + +### 调测验证 + +**_【写作要求】_** + +- _可选。开发完成后,如有独立的调测验证操作,需提供指导,以确认操作是否成功。操作步骤要求同“开发步骤”。_ + +- _此处仅提供最后的业务调测,每个小任务的操作结果,推荐在开发步骤执行完成后及时验证。_ + + +## 常见问题 + +_可选。_ + +**_【开发者关注点】_** + +_该方案/特性/功能/模块开发全流程中可能遇到哪些典型问题?如何定位、解决?_ + +**_【写作要点】_** + +_描述开发过程遇到的各类问题以及解决方案,以提高开发效率。_ + +- _如果无常见问题,删除此章节。_ + +- _如果有常见问题,建议单独章节,后续具备扩展性。_ + +- _如果有常见问题,问题少于1屏且未来扩充可能性不大,可放在“开发指导”。_ + +### 1.XX问题(简单问题) -## 调测验证(可选) +XXX -*【**写作要求**】* -*可选*。 *描述开发完成后,进行调测验证,确保最终操作成功*。*操作步骤要求同“开发指导”,其他具体写作要求见下,完成写作后,请逐项自检下*。 +### 2.XX问题(复杂问题) -| 内容要求 | 是否满足 | -| -------- | -------- | -| 仅进行最后的业务调测,每个小任务的操作结果,在开发步骤执行完成后,及时验证操作结果。 | | -| 明确开发成功标准。 | | +**现象描述** -## 开发实例 -*【**写作要求**】* +XXX -*提供完整的sample示例,同时简要描述示例原理和实现,并链接到源码仓*。 +**可能原因** -针对xxx开发,有以下示例工程可供参考: +XXX -- xxx(此处请提供源码超链接) +**解决办法** - 本示例xxxx。 +XXX diff --git a/zh-cn/device-dev/driver/driver-platform-mmc-develop.md b/zh-cn/device-dev/driver/driver-platform-mmc-develop.md index 8c454e5bf61cb88e4b19013dd587362693661bc1..b0624652da2a2948344a5ba0a8d7e55e6a375be9 100755 --- a/zh-cn/device-dev/driver/driver-platform-mmc-develop.md +++ b/zh-cn/device-dev/driver/driver-platform-mmc-develop.md @@ -318,7 +318,7 @@ MMC模块适配的三个环节是配置属性文件,实例化驱动入口, ... ret = HimciHostInit(host, cntlr);// 厂商自定义的初始化,失败就 goto _ERR; ... - ret = MmcCntlrAdd(cntlr); // 调用核心层函数 失败就goto _ERR; + ret = MmcCntlrAdd(cntlr); // 调用核心层函数 失败就goto _ERR; ... (void)MmcCntlrAddDetectMsgToQueue(cntlr);// 将卡检测消息添加到队列中。 HDF_LOGD("HimciMmcBind: success."); diff --git a/zh-cn/device-dev/driver/driver-platform-regulator-develop.md b/zh-cn/device-dev/driver/driver-platform-regulator-develop.md index e061bda13d975b1e182735e0ddfdd2b0cd0fe6fc..caf59384cdaca17354ed3b69a62d8362d96456a0 100755 --- a/zh-cn/device-dev/driver/driver-platform-regulator-develop.md +++ b/zh-cn/device-dev/driver/driver-platform-regulator-develop.md @@ -129,12 +129,12 @@ Regulator模块适配包含以下四个步骤: device_regulator :: device { device0 :: deviceNode { // 为每一个Regulator控制器配置一个HDF设备节点,存在多个时添加,否则不用 policy = 1; // 2:用户态可见;1:内核态可见;0:不需要发布服务 - priority = 50; // 驱动启动优先级 + priority = 50; // 驱动启动优先级 permission = 0644; // 驱动创建设备节点权限 /* 【必要】用于指定驱动名称,需要与期望的驱动Entry中的moduleName一致 */ moduleName = "HDF_PLATFORM_REGULATOR_MANAGER"; serviceName = "HDF_PLATFORM_REGULATOR_MANAGER"; //【必要且唯一】驱动对外发布服务的名称 - /* 【必要】用于配置控制器私有数据,要与regulator_config.hcs中对应控制器保持一致,具体的控制器信息在regulator_config.hcs中 */ + /* 【必要】用于配置控制器私有数据,要与regulator_config.hcs中对应控制器保持一致,具体的控制器信息在regulator_config.hcs中 */ deviceMatchAttr = "hdf_platform_regulator_manager"; } device1 :: deviceNode { @@ -215,8 +215,8 @@ Regulator模块适配包含以下四个步骤: }; struct RegulatorDesc { - const char *name; /* regulator名称 */ - const char *parentName; /* regulator父节点名称 */ + const char *name; /* regulator名称 */ + const char *parentName; /* regulator父节点名称 */ struct RegulatorConstraints constraints; /* regulator约束信息 */ uint32_t minUv; /* 最小输出电压值 */ uint32_t maxUv; /* 最大输出电压值 */ diff --git a/zh-cn/device-dev/driver/driver-platform-spi-des.md b/zh-cn/device-dev/driver/driver-platform-spi-des.md index 134e38f4c2e8d3221bfecbc894b5455006093d31..79787c85ae86460d349cb0ea0cb55d33729ff6e3 100644 --- a/zh-cn/device-dev/driver/driver-platform-spi-des.md +++ b/zh-cn/device-dev/driver/driver-platform-spi-des.md @@ -91,7 +91,7 @@ DevHandle SpiOpen(const struct SpiDevInfo *info); ``` struct SpiDevInfo spiDevinfo; /* SPI设备描述符 */ -DevHandle spiHandle = NULL; /* SPI设备句柄 */ +DevHandle spiHandle = NULL; /* SPI设备句柄 */ spiDevinfo.busNum = 0; /* SPI设备总线号 */ spiDevinfo.csNum = 0; /* SPI设备片选号 */ diff --git a/zh-cn/device-dev/driver/driver-platform-spi-develop.md b/zh-cn/device-dev/driver/driver-platform-spi-develop.md index 402bf069c6ba08e22039e4511b96802bb1dc3479..4ef4033c13db3f68ce83509a02e32af98cf361dc 100755 --- a/zh-cn/device-dev/driver/driver-platform-spi-develop.md +++ b/zh-cn/device-dev/driver/driver-platform-spi-develop.md @@ -90,7 +90,7 @@ SPI模块适配HDF框架的三个环节是配置属性文件,实例化驱动 platform :: host { hostName = "platform_host"; priority = 50; - device_spi :: device { //为每一个 SPI 控制器配置一个HDF设备节点 + device_spi :: device { //为每一个 SPI 控制器配置一个HDF设备节点 device0 :: deviceNode { policy = 1; priority = 60; @@ -104,8 +104,8 @@ SPI模块适配HDF框架的三个环节是配置属性文件,实例化驱动 priority = 60; permission = 0644; moduleName = "HDF_PLATFORM_SPI"; // 【必要】用于指定驱动名称,该字段的值必须和驱动入口结构的moduleName值一致 - serviceName = "HDF_PLATFORM_SPI_1"; // 【必要且唯一】驱动对外发布服务的名称 - deviceMatchAttr = "hisilicon_hi35xx_spi_1";// 需要与设备hcs文件中的match_attr匹配 + serviceName = "HDF_PLATFORM_SPI_1"; // 【必要且唯一】驱动对外发布服务的名称 + deviceMatchAttr = "hisilicon_hi35xx_spi_1"; // 需要与设备hcs文件中的match_attr匹配 } ... } @@ -294,10 +294,10 @@ SPI模块适配HDF框架的三个环节是配置属性文件,实例化驱动 int32_t ret; struct SpiCntlr *cntlr = NULL; ... - cntlr = SpiCntlrFromDevice(device);// 这里有HdfDeviceObject到SpiCntlr的强制转化,通过service成员,赋值见Bind函数 + cntlr = SpiCntlrFromDevice(device); // 这里有HdfDeviceObject到SpiCntlr的强制转化,通过service成员,赋值见Bind函数 // return (device == NULL) ? NULL : (struct SpiCntlr *)device->service; ... - ret = Pl022Init(cntlr, device);// 【必要】实例化厂商自定义操作对象,示例见下 + ret = Pl022Init(cntlr, device); // 【必要】实例化厂商自定义操作对象,示例见下 ... ret = Pl022Probe(cntlr->priv); ... @@ -318,15 +318,15 @@ SPI模块适配HDF框架的三个环节是配置属性文件,实例化驱动 // 计算最大,最小速度对应的频率 pl022->maxSpeedHz = (pl022->clkRate) / ((SCR_MIN + 1) * CPSDVSR_MIN); pl022->minSpeedHz = (pl022->clkRate) / ((SCR_MAX + 1) * CPSDVSR_MAX); - DListHeadInit(&pl022->deviceList);// 初始化DList链表 - pl022->cntlr = cntlr; // 使Pl022与SpiCntlr可以相互转化的前提 - cntlr->priv = pl022; // 使Pl022与SpiCntlr可以相互转化的前提 - cntlr->busNum = pl022->busNum; // 给SpiCntlr的busNum赋值 - cntlr->method = &g_method; // SpiCntlrMethod的实例化对象的挂载 + DListHeadInit(&pl022->deviceList); // 初始化DList链表 + pl022->cntlr = cntlr; // 使Pl022与SpiCntlr可以相互转化的前提 + cntlr->priv = pl022; // 使Pl022与SpiCntlr可以相互转化的前提 + cntlr->busNum = pl022->busNum; // 给SpiCntlr的busNum赋值 + cntlr->method = &g_method; // SpiCntlrMethod的实例化对象的挂载 ... ret = Pl022CreatAndInitDevice(pl022); if (ret != 0) { - Pl022Release(pl022); // 初始化失败就释放Pl022对象 + Pl022Release(pl022); // 初始化失败就释放Pl022对象 return ret; } return 0; @@ -352,11 +352,11 @@ SPI模块适配HDF框架的三个环节是配置属性文件,实例化驱动 { struct SpiCntlr *cntlr = NULL; ... - cntlr = SpiCntlrFromDevice(device);// 这里有HdfDeviceObject到SpiCntlr的强制转化,通过service成员,赋值见Bind函数 - // return (device==NULL) ?NULL:(struct SpiCntlr *)device->service; + cntlr = SpiCntlrFromDevice(device); // 这里有HdfDeviceObject到SpiCntlr的强制转化,通过service成员,赋值见Bind函数 + // return (device==NULL) ?NULL:(struct SpiCntlr *)device->service; ... if (cntlr->priv != NULL) { - Pl022Remove((struct Pl022 *)cntlr->priv);// 这里有SpiCntlr到Pl022的强制转化 + Pl022Remove((struct Pl022 *)cntlr->priv); // 这里有SpiCntlr到Pl022的强制转化 } SpiCntlrDestroy(cntlr); // 释放Pl022对象 } diff --git a/zh-cn/device-dev/driver/driver-platform-uart-des.md b/zh-cn/device-dev/driver/driver-platform-uart-des.md index 2d26b17e1c8ad18f941a2cca012477ba28ba51b6..b042d8fd09c9783091e3ce6ecbc3a5f848735a4b 100644 --- a/zh-cn/device-dev/driver/driver-platform-uart-des.md +++ b/zh-cn/device-dev/driver/driver-platform-uart-des.md @@ -80,7 +80,7 @@ DevHandle UartOpen(uint32_t port); ``` DevHandle handle = NULL; /* UART设备句柄 */ -uint32_t port = 3; /* UART设备端口号 */ +uint32_t port = 3; /* UART设备端口号 */ handle = UartOpen(port); if (handle == NULL) { HDF_LOGE("UartOpen: failed!\n"); diff --git a/zh-cn/device-dev/driver/driver-platform-uart-develop.md b/zh-cn/device-dev/driver/driver-platform-uart-develop.md index a915c44f03be2b94d147b53581a538b1553b6fb2..d33491b40f4da5a80d90548d85f25e3dd63860ce 100755 --- a/zh-cn/device-dev/driver/driver-platform-uart-develop.md +++ b/zh-cn/device-dev/driver/driver-platform-uart-develop.md @@ -263,14 +263,14 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动 // uart_core.c核心层UartHostCreate函数说明 struct UartHost *UartHostCreate(struct HdfDeviceObject *device) { - struct UartHost *host = NULL; // 新建UartHost + struct UartHost *host = NULL; // 新建UartHost ... host = (struct UartHost *)OsalMemCalloc(sizeof(*host));//分配内存 ... - host->device = device; // 【必要】使HdfDeviceObject与UartHost可以相互转化的前提 - device->service = &(host->service);// 【必要】使HdfDeviceObject与UartHost可以相互转化的前提 + host->device = device; // 【必要】使HdfDeviceObject与UartHost可以相互转化的前提 + device->service = &(host->service); // 【必要】使HdfDeviceObject与UartHost可以相互转化的前提 host->device->service->Dispatch = UartIoDispatch;// 为service成员的Dispatch方法赋值 - OsalAtomicSet(&host->atom, 0); // 原子量初始化或者原子量设置 + OsalAtomicSet(&host->atom, 0); // 原子量初始化或者原子量设置 host->priv = NULL; host->method = NULL; return host; @@ -319,7 +319,7 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动 ... port = (struct UartPl011Port *)OsalMemCalloc(sizeof(struct UartPl011Port));//【2】 ... - udd->ops = Pl011GetOps();// 【3】设备开启、关闭、属性设置、发送操作等函数挂载 + udd->ops = Pl011GetOps(); // 【3】设备开启、关闭、属性设置、发送操作等函数挂载 udd->recv = PL011UartRecvNotify;// 【4】数据接收通知函数(条件锁机制)挂载 udd->count = 0; // 【5】 port->udd = udd; // 【6】使UartPl011Port与UartDriverData可以相互转化的前提 @@ -328,9 +328,9 @@ UART模块适配HDF框架的三个环节是配置属性文件,实例化驱动 ... udd->private = port; //【7】 - host->priv = udd; // 【必要】使UartHost与UartDriverData可以相互转化的前提 - host->num = udd->num;// 【必要】UART设备号 - UartAddDev(host); // 【必要】核心层uart_dev.c 中的函数,作用:注册一个字符设备节点到vfs,这样从用户态可以通过这个虚拟文件节点访问UART + host->priv = udd; // 【必要】使UartHost与UartDriverData可以相互转化的前提 + host->num = udd->num; // 【必要】UART设备号 + UartAddDev(host); // 【必要】核心层uart_dev.c 中的函数,作用:注册一个字符设备节点到vfs,这样从用户态可以通过这个虚拟文件节点访问UART return HDF_SUCCESS; } diff --git a/zh-cn/device-dev/driver/driver-platform-watchdog-develop.md b/zh-cn/device-dev/driver/driver-platform-watchdog-develop.md index ee489d1432db682584018dcdf78c1d154cbd21dd..90dc9eb53f0dd8010dde227db9519793b66df2ed 100755 --- a/zh-cn/device-dev/driver/driver-platform-watchdog-develop.md +++ b/zh-cn/device-dev/driver/driver-platform-watchdog-develop.md @@ -211,7 +211,7 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱 hwdt->regBase = OsalIoRemap(hwdt->phyBase, hwdt->regStep); //地址映射 ... hwdt->wdt.priv = (void *)device->property;// 【可选】此处是将设备属性的内容赋值给priv成员,但后续没有调用 priv 成员, - // 如果需要用到priv成员,需要额外实例化WatchdogMethod的getPriv和releasePriv成员函数 + // 如果需要用到priv成员,需要额外实例化WatchdogMethod的getPriv和releasePriv成员函数 hwdt->wdt.ops = &g_method; // 【必要】将实例化后的对象赋值给ops成员,就可以实现顶层调用WatchdogMethod成员函数 hwdt->wdt.device = device; // 【必要】这是为了方便HdfDeviceObject与WatchdogcCntlr相互转化 ret = WatchdogCntlrAdd(&hwdt->wdt); // 【必要】调用此函数初始化核心层结构体,返回成功信号后驱动才完全接入平台核心层 @@ -244,17 +244,17 @@ Watchdog模块适配HDF框架的三个环节是配置属性文件,实例化驱 struct WatchdogCntlr *wdt = NULL; struct Hi35xxWatchdog *hwdt = NULL; ... - wdt = WatchdogCntlrFromDevice(device);// 这里会通过service成员将HdfDeviceObject转化为WatchdogCntlr + wdt = WatchdogCntlrFromDevice(device); // 这里会通过service成员将HdfDeviceObject转化为WatchdogCntlr // return (device == NULL) ? NULL : (struct WatchdogCntlr *)device->service; if (wdt == NULL) { return; } - WatchdogCntlrRemove(wdt); // 核心层函数,实际执行wdt->device->service = NULL以及cntlr->lock的释放 - hwdt = (struct Hi35xxWatchdog *)wdt; // 这里将WatchdogCntlr转化为HimciHost + WatchdogCntlrRemove(wdt); // 核心层函数,实际执行wdt->device->service = NULL以及cntlr->lock的释放 + hwdt = (struct Hi35xxWatchdog *)wdt; // 这里将WatchdogCntlr转化为HimciHost if (hwdt->regBase != NULL) { // 解除地址映射 OsalIoUnmap((void *)hwdt->regBase); hwdt->regBase = NULL; } - OsalMemFree(hwdt); // 释放厂商自定义对象占用的内存 + OsalMemFree(hwdt); // 释放厂商自定义对象占用的内存 } ``` diff --git a/zh-cn/device-dev/porting/porting-asr582x-combo-demo.md b/zh-cn/device-dev/porting/porting-asr582x-combo-demo.md index 3b77f483e30a683ff62468554109b38b7bd55a13..f87d9c1786d8e19dbfb93156d93d8be5c1f4a986 100755 --- a/zh-cn/device-dev/porting/porting-asr582x-combo-demo.md +++ b/zh-cn/device-dev/porting/porting-asr582x-combo-demo.md @@ -174,8 +174,8 @@ LOSCFG_SOC_ASR5822S=y module_name = get_path_info(rebase_path("."), "name") module_group(module_name) { modules = [ - "dev_wifi_a", --- 单板模块 - "hcs", --- hcs文件的对应模块 + "dev_wifi_a", # 单板模块 + "hcs", # hcs文件的对应模块 ] } } @@ -203,17 +203,17 @@ LOSCFG_SOC_ASR5822S=y import("//kernel/liteos_m/liteos.gni") config("public") { - include_dirs = [ "." ] --- 公共头文件 + include_dirs = [ "." ] # 公共头文件 } - kernel_module("asr_startup") { --- 编译的模块 - sources = [ --- 编译的源文件 + kernel_module("asr_startup") { # 编译的模块 + sources = [ # 编译的源文件 "startup.c", "board.c", "startup_cm4.S", ] - include_dirs = [ --- 模块内使用到的头文件 + include_dirs = [ # 模块内使用到的头文件 "...", ] } @@ -223,10 +223,10 @@ LOSCFG_SOC_ASR5822S=y ``` config("public") { - include_dirs = [] --- 公共头文件 - ldflags = [] --- 链接参数,包括ld文件 - libs = [] --- 链接库 - defines = [] --- 定义 + include_dirs = [] # 公共头文件 + ldflags = [] # 链接参数,包括ld文件 + libs = [] # 链接库 + defines = [] # 定义 ``` ![](../public_sys-resources/icon-note.gif) **说明:** @@ -306,8 +306,8 @@ if (ret != LOS_OK) { 在初始化之后,每个shell命令需要进行注册,例如:`vendor/asrmicro/wifi_demo/tests/wifi/wifi_app.c`: ``` -osCmdReg(CMD_TYPE_STD, "wifi_open", 0, (CMD_CBK_FUNC)ap_conn_func); --- 连接AP的指令,这里可以带参 -osCmdReg(CMD_TYPE_EX, "wifi_close", 0, (CMD_CBK_FUNC)ap_close_func); --- 断开指令 +osCmdReg(CMD_TYPE_STD, "wifi_open", 0, (CMD_CBK_FUNC)ap_conn_func); // 连接AP的指令,这里可以带参 +osCmdReg(CMD_TYPE_EX, "wifi_close", 0, (CMD_CBK_FUNC)ap_close_func); // 断开指令 ``` ### 内核启动适配 @@ -316,21 +316,21 @@ osCmdReg(CMD_TYPE_EX, "wifi_close", 0, (CMD_CBK_FUNC)ap_close_func); --- 断 注册中断,可参考`//device/soc/asrmicro/asr582x/liteos_m/sdk/startup/board.c`: ``` -ArchHwiCreate(UART1_IRQn,configLIBRARY_NORMAL_INTERRUPT_PRIORITY,0,UART1_IRQHandler,0); --- UART中断 -ArchHwiCreate(GPIO_IRQn,configLIBRARY_NORMAL_INTERRUPT_PRIORITY,0,GPIO_IRQHandler,0); --- GPIO中断 +ArchHwiCreate(UART1_IRQn,configLIBRARY_NORMAL_INTERRUPT_PRIORITY,0,UART1_IRQHandler,0); // UART中断 +ArchHwiCreate(GPIO_IRQn,configLIBRARY_NORMAL_INTERRUPT_PRIORITY,0,GPIO_IRQHandler,0); // GPIO中断 ``` 内核初始化示例如下: ``` -osStatus_t ret = osKernelInitialize(); --- 内核初始化 +osStatus_t ret = osKernelInitialize(); // 内核初始化 if(ret == osOK) { - threadId = osThreadNew((osThreadFunc_t)sys_init,NULL,&g_main_task); --- 创建init线程 + threadId = osThreadNew((osThreadFunc_t)sys_init,NULL,&g_main_task); // 创建init线程 if(threadId!=NULL) { - osKernelStart(); --- 线程调度 + osKernelStart(); // 线程调度 } } ``` @@ -339,9 +339,9 @@ if(ret == osOK) ``` ... -DeviceManagerStart(); --- HDF初始化 +DeviceManagerStart(); // HDF初始化 -OHOS_SystemInit(); --- OpenHarmony系统组件初始化 +OHOS_SystemInit(); // OpenHarmony系统组件初始化 .... ``` @@ -439,14 +439,14 @@ LOSCFG_DRIVERS_HDF_PLATFORM=y ``` controller_uart0 :: uart_controller { match_attr = "asr582x_uart_0"; - port = 0; /* UART_ID_0 */ + port = 0; /* UART_ID_0 */ - pin_tx_pin = 0; /* IO_PIN_10 */ + pin_tx_pin = 0; /* IO_PIN_10 */ pin_tx_mux = 25; /* IO_MUX_2 */ - pin_rx_pin = 1; /* IO_PIN_11 */ + pin_rx_pin = 1; /* IO_PIN_11 */ pin_rx_mux = 25; /* IO_MUX_2 */ - tx_rx = 3; /* TX_RX MODE */ + tx_rx = 3; /* TX_RX MODE */ } ``` @@ -598,7 +598,7 @@ dsoftbus组件的选项配置如下: ``` declare_args() { - asr_dsoftbus_test = true --- 打开dsoftbus demo编译 + asr_dsoftbus_test = true # 打开dsoftbus demo编译 } ``` @@ -610,7 +610,7 @@ declare_args() { "enable": "true", "test_modules": [ "wifi_test", - "dsoftbus_test" --- 打开dsoftbus_test模块 + "dsoftbus_test" # 打开dsoftbus_test模块 ] } ] @@ -626,7 +626,7 @@ dsoftbus组件的运行需至少预留80KB RAM。如资源不够,可对其它 `//kernel_liteos_m/blob/master/components/net/lwip-2.1/porting/include/lwip/lwipopts.h`: ``` -#define TCPIP_THREAD_STACKSIZE 0x2000 --- 缩小TCPIP任务栈大小 +#define TCPIP_THREAD_STACKSIZE 0x2000 // 缩小TCPIP任务栈大小 ``` 在communication_dsoftbus仓中,加入了-fPIC编译选项,这样会让编译器产生与位置无关代码,并使用相对地址,但是在LiteOS-M核中使用的是静态库,不推荐使用。 diff --git a/zh-cn/device-dev/porting/porting-chip-prepare-knows.md b/zh-cn/device-dev/porting/porting-chip-prepare-knows.md index 1791018a6fc4b643576bcc5a299aa7709ffd08d9..528ce6fc4262a09b827c057faa24147705f0cc81 100644 --- a/zh-cn/device-dev/porting/porting-chip-prepare-knows.md +++ b/zh-cn/device-dev/porting/porting-chip-prepare-knows.md @@ -43,7 +43,7 @@ vendor目录规则:vendor/{产品解决方案厂商}/{产品名称}。以华 ``` vendor # 产品解决方案厂商 -└── example # 产品解决方案厂商名称 +└── example # 产品解决方案厂商名称 └── wifiiot # 产品名称 ├── hals # 产品解决方案厂商OS适配 ├── BUILD.gn # 产品编译脚本 diff --git a/zh-cn/device-dev/porting/porting-thirdparty-makefile.md b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md index dca898d1a778dbf19bfd97f1ef67af4325e6fe71..5d01193f8c7cf62e190cbbf7e326e4ab776d2f2b 100644 --- a/zh-cn/device-dev/porting/porting-thirdparty-makefile.md +++ b/zh-cn/device-dev/porting/porting-thirdparty-makefile.md @@ -31,7 +31,7 @@ 设置Makefile的交叉编译工具链,修改并编译该库,生成OpenHarmony平台的可执行文件,步骤如下: 1. 设置工具链 - 将下列clang工具链配置替换掉yxml库根目录的MakeFile(即表1中的文件)中的原有配置。 + 将下列clang工具链配置替换掉yxml库根目录的Makefile(即表1中的文件)中的原有配置。 clang工具链配置: diff --git a/zh-cn/device-dev/porting/porting-w800-combo-demo.md b/zh-cn/device-dev/porting/porting-w800-combo-demo.md index d2f4d7f8cfbb22f64ed6b739604e32dde8eb7b92..09a8cce377a411f1f67a1d6cc3abeda035e5596f 100755 --- a/zh-cn/device-dev/porting/porting-w800-combo-demo.md +++ b/zh-cn/device-dev/porting/porting-w800-combo-demo.md @@ -354,10 +354,10 @@ OHOS Which product do you need? neptune_iotlink_demo 5. 为了组织一些产品侧的应用,需要强制链接到产品工程中来,本方案在vendor相应的`config.json`加入了相应的list来组织,在`vendor/hihope/neptune_iotlink_demo/config.json`增加对应的list: ``` - "bin_list": [ --- demo list + "bin_list": [ --- demo list { "elf_name": "hihope", - "enable": "false", --- list开关 + "enable": "false", --- list开关 "force_link_libs": [ "bootstrap", "broadcast", diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129426.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129426.png index c5548cb227bd024b49aa3adba0a20869581448e8..8cff39968a2d34bdd93daa5de808a07558b56077 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129426.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129426.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129427.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129427.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d11ba64f1f23a789167eabfc36f482fbc09697 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001114129427.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649343.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649343.png index 67d8044b72056d4ed6230ccc4ad99d5e954596b6..144950cb8cb1d260989d988242ca318ab584dfe6 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649343.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649343.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649344.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649344.png new file mode 100644 index 0000000000000000000000000000000000000000..82edf61fc871cc83e073036ee2593b89dea5e5cb Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001160649344.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png index fcaf25e47e2e47ecad8aebe463aeccdf1d8bf85e..e83dad0b26392f009564d2e4014e374187ac1d7f 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001177478136.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png index fdd12932d3777bd30a208e539a78ede6384cce19..0ba155fce3a06f53d085a1309cc00e9710e3c58d 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194504874.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png index 17d64a31a527a2b7453cc8490655609bd338ad7c..560240a18a081d50201d6185d25da46cc1c7a0eb 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001194821710.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566364.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566364.png index 1ba77b7feaca23043e71171824cdead7c4f8f108..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566364.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566364.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566365.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566365.png new file mode 100644 index 0000000000000000000000000000000000000000..5702f209752edc74d687e5e8ce7e210428f4551e Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198566365.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198722374.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198722374.png index c6507f28b980b84c65102aa844e93f806cb490a9..6914f2d806dc8a2a8a26a8265f60832686dc2902 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198722374.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198722374.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198943768.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198943768.png index 5a709092da504fbb090ad8d44938e435712bc0eb..5702f209752edc74d687e5e8ce7e210428f4551e 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198943768.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001198943768.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852753.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852753.png new file mode 100644 index 0000000000000000000000000000000000000000..58d4e1027aefb6650920d9d31fbb622bebc4f726 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852753.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png index c3013a3f9bd3951e53e1f0848c12700024c5f5e8..a316d0a2c4117a16143c79426523dbc75c8dd1a8 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852754.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852755.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852755.png new file mode 100644 index 0000000000000000000000000000000000000000..884a8a0d8dfc1e14b3b2a256ede49bc88772c816 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001220852755.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012767.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012767.png new file mode 100644 index 0000000000000000000000000000000000000000..eead40cd3f889b23f73a6f02a9b7f44c822c2e37 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012767.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012768.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012768.png new file mode 100644 index 0000000000000000000000000000000000000000..d744afcd6c27ca674ae202bd4ca3511bb58bdbbc Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221012768.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png index f17d2dd5dbc86b98a659218ed4a5e3a69409ae54..f0d3cfc874effae73aad01dd26961ef4946c8f81 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221025048.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png index 29b22463c375704734e6925861551aa27ec7b295..cd6c3f1d8cea88d58a885446dad9cae3b74bce0b 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172710.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172711.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172711.png new file mode 100644 index 0000000000000000000000000000000000000000..d1992b49a9805cd0823c98c2d6f1500a10c5f249 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221172711.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png index 7bf0acc41746926462ab3c352f143f90f2e65358..86501f030f57eea30b724f8b7d32736a8ddc7f21 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221344980.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png index 8f5ee977c68bce18bed83887191ddf870df7d8e9..6d567bf69106c8bb266c7f7f445a317b5405c6a5 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001221356692.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png index 63d053122f3c7beaa990f63431ccb16692562535..c3c0811c65d83f3a88f158f1c3336c1a950f4e69 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001223190441.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png index 9e249959cad7e68b535f8732b44e20db9f6db2fc..61536a53597991971c997481624f1aedbc232c6d 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001225760456.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png index fd2a5588e6576449bcb9ec1f92a12649dcd6c5d0..df66ac7a87d293ae8500eae978fbe5bcbc23e214 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227277128.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png index c354bdb69c0293fd19cb71905f828fca1fe7d09c..dea8677bfd7c9ba3f7b82f00c8422d695f85b86b 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001227757036.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png index c3f10040538814eccbecf2ef37d472d59743e08f..541920af4791d36a3ad8eb3e8ccf154dc947944a 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001239661509.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243704061.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243704061.png index c93b7b610138e91c0b6b171cb515f540163e731b..f81b300b68edcc0400dcf72dfeb827fcf6ccaeea 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243704061.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001243704061.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png index 7cc6ca102383151b5b67447332e73fc16c5ef85e..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265492885.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png index eff6401bb39152c2d02b7f17e557b1cd5dbb0e87..da90fa7c0cd0da44ab6aff877eb8e11550dc7871 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265505181.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png index 4c1ce174731a8e20b62d119cbe1728e9a8394176..fb6232380ebbc988a3b23dfec149daedd3f0c971 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265652869.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png index 0a574b8ee51edd1f4049e5ca6821a9347a45c2de..56dabefba81dd9391d3bb5f52931bdbdc5753b22 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265665157.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png index a87d8c651147e1b7cb1f3d60513a6b3139540399..f467c1b45f84730fd3fc45158004d9a03dec2551 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265676877.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png index 659d732a4d044cfa4dacb84c5ec96bfc6b29707e..e5596ca2eac9b5d2cd1c96ffa50b1e390c68c904 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265772913.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png index 0e5a65d7765d8bc936ca9a2d7db12f3adeffd831..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265785209.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png index f2447dd8f49268594e781e1c68751b209e01894c..d6dbd5d63c55c135dd8121d4ca1b4d11d5438897 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001265945173.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001266887264.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001266887264.png index f931e2cfba06791a3891248c5d8e6a9f0e86bf0e..e17047264d181b73e48e96a54c60517b57f42fb5 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001266887264.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001266887264.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267532292.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267532292.png index 8ed1535a6bc23dc5bd02fbd5a3f1392f46ad8d83..db92b0181a48b56990633058e3a4efce7ca5be82 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267532292.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001267532292.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png index caa9309b7f069597073ffa593a7fbc6820b4b2e9..0a150015345ea48708c486f21b76796f6e3ee36d 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237241.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237242.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237242.png new file mode 100644 index 0000000000000000000000000000000000000000..9a300afbcd842f7c61877123236675efc422f039 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271237242.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png index fbd3cb48f2cb35c02595be0293733644e16020bd..c728580c57510fa2fe67a7e337492adae328d7ea 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442129.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png index fbd3cb48f2cb35c02595be0293733644e16020bd..c728580c57510fa2fe67a7e337492adae328d7ea 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271442261.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png index 53cbcb8b0d0c30cb289b746d20b6c73927019d1a..0a150015345ea48708c486f21b76796f6e3ee36d 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271448821.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png index c55a6ddd1aa319adfa05987ff3f5c79231e7208d..8581b9663ab1f1597166d9e5b668c4d70c273e01 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001271477045.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001275592884.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001275592884.png new file mode 100644 index 0000000000000000000000000000000000000000..2186d2a5328684c1a479d4fca6b9fa74884c6a7b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001275592884.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001276354454.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001276354454.png new file mode 100644 index 0000000000000000000000000000000000000000..2419d79327a7a13df83fe637916b9abeb180a2b0 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001276354454.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001278358765.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001278358765.png index 96b251c58071d4203ff51f28317f378d6ec71ebb..3bb58a00550fb0a0e195eb7f4cdb9e80be1ac6ab 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001278358765.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001278358765.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279425450.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279425450.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3d1c40e18002a60a3c179b5e4e1396056a5b41 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279425450.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279426717.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279426717.png index 53cbcb8b0d0c30cb289b746d20b6c73927019d1a..0a150015345ea48708c486f21b76796f6e3ee36d 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279426717.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279426717.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279586409.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279586409.png index 7cc145edaa4ec883d4090febcf38fec14b35b46f..e1cfe8323c13c750a03c4d5c86f2c383e554485d 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279586409.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279586409.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279587085.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279587085.png index 0e1bebbb79fd4281b41173171d4a96fb0e84c166..084af8cfb40d4c59aa428890df7a1aee622a79d4 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279587085.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001279587085.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001280938208.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001280938208.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1c5ad3ffe3f4dcceeb78c33856c063aa506b43 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001280938208.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001312778829.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001312778829.png index 15791ccc963502062bd54537567db8876d9d7b63..eb1df60899dd8c41a61369410603d8f0adb77486 100644 Binary files a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001312778829.png and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001312778829.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001322167645.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001322167645.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d394f1debbbcf714a401630370639014d46160 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001322167645.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001326412233.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001326412233.png new file mode 100644 index 0000000000000000000000000000000000000000..e31eef74e95c2ecbb8e62d4ad897a2188e66d186 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001326412233.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001327429541.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001327429541.png new file mode 100644 index 0000000000000000000000000000000000000000..cc19b0a8e8f97ec07b29eab8b01f387c5c81903c Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001327429541.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001333642545.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001333642545.png new file mode 100644 index 0000000000000000000000000000000000000000..2186d2a5328684c1a479d4fca6b9fa74884c6a7b Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001333642545.png differ diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001333802045.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001333802045.png new file mode 100644 index 0000000000000000000000000000000000000000..1fef79a0d9ab7d7862be1e108ae947cec5eb16d2 Binary files /dev/null and b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001333802045.png differ diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md index 51082747d4abd7b932f9e7afea332e5bcf7f8618..95011ede77ffcc9c1493fb241c9a8de7044d0724 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-create-project.md @@ -8,26 +8,15 @@ ![zh-cn_image_0000001278358765](figures/zh-cn_image_0000001278358765.png) -2. 选择要导入的源码目录,点击**Import**打开。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 - - ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) - -3. 首次导入时,会出现如下提示框,点击**Import**。 - - ![zh-cn_image_0000001314157517](figures/zh-cn_image_0000001314157517.png) +2. 选择OpenHarmony源码根目录路径,然后再选择**Import OpenHarmony Source**选项,点击**Import**进行导入。 -4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 - - ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - -5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。下图以导入wifiiot_hispark_pegasus为例进行说明。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - Hi3861开发板Product选择“wifiiot_hispark_pegasus”。 - > - > - Hi3516DV300开发板Product选择“ipcamera_hispark_taurus”。 - - ![zh-cn_image_0000001271237241](figures/zh-cn_image_0000001271237241.png) + > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 -6. 点击**Open**打开工程或源码。 + ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) + +3. 在Import Project界面,选择**Product**后,会自动填充对应的SOC、Board、Company和Kernel信息,然后Ohos Ver选择对应的OpenHarmony源码版本。 + + ![zh-cn_image_0000001271237242](figures/zh-cn_image_0000001271237242.png) + +4. 点击**Open**打开工程或源码。 \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md index 9f5800cbe56fd696155fdc5b28351bc7d34c5379..e97c5bdae073088f15b14611d30ad6a3ad9838e1 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md @@ -11,7 +11,7 @@ - Windows系统要求:Windows10 64位系统。 -- Ubuntu系统要求:Ubuntu20.04及以上版本,内存推荐16 GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本,内存推荐16 GB及以上。 - Ubuntu系统的用户名不能包含中文字符。 @@ -54,18 +54,15 @@ ``` 4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.401.sh请根据实际进行修改。 - + ``` sudo ./devicetool-linux-tool-3.0.0.401.sh ``` - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 - > - > 安装过程中,会弹出用户协议和隐私声明签署的页面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 - > - > 如果未弹出用户协议和隐私声明签署的页面,而直接退出了安装,请先执行apt-get install whiptail,然后再执行安装命令。 +5. 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 + ![zh-cn_image_0000001322167645.png](figures/zh-cn_image_0000001322167645.png) + 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 ![zh-cn_image_0000001198722374](figures/zh-cn_image_0000001198722374.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md index ec48d64dfbd220a98d2ee7f709e6a8a571b5abe1..baccb4afca3f695a50438e42be50546f092e5084 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-building.md @@ -1,29 +1,34 @@ # 编译 -1. 在Projects中,点击**Settings**按钮,进入Hi3516DV300配置界面。 +1. 在菜单栏中点击**Project Settings**按钮,进入Hi3516DV300工程配置界面。 ![zh-cn_image_0000001265492885](figures/zh-cn_image_0000001265492885.png) -2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 - +2. 在Tool Chain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**Install**按钮,自动安装所需工具链。 + ![zh-cn_image_0000001265652869](figures/zh-cn_image_0000001265652869.png) +3. 安装Hi3516DV300相关工具链,部分工具安装需要使用root权限,请在“TERMINAL”窗口输入用户密码进行安装。 + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 + + ![zh-cn_image_0000001220852753](figures/zh-cn_image_0000001220852753.png) + 工具链自动安装完成后如下图所示。 - + ![zh-cn_image_0000001220852754](figures/zh-cn_image_0000001220852754.png) - -3. 在“hi3516dv300”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 + +4. 在“ipcamera_hispark_taurus”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 ![zh-cn_image_0000001221172710](figures/zh-cn_image_0000001221172710.png) -4. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 +5. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 ![zh-cn_image_0000001265772913](figures/zh-cn_image_0000001265772913.png) -5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 +6. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 ![zh-cn_image_0000001221012766](figures/zh-cn_image_0000001221012766.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md index f798dcde663f514af46b1b7785f0490515f7298f..365686ad4de7fb2c59cbcb4a4e8d5000a1868de4 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3516-burn.md @@ -3,66 +3,61 @@ 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 +Hi3516DV300的镜像烧录通过Winodow环境进行烧录,开发者启动烧录操作后,DevEco Device Tool通过Remote远程模式,将Ubuntu环境下编译生成的待烧录程序文件拷贝至Windows目录下,然后通过Windows的烧录工具将程序文件烧录至开发板中。 -Hi3516DV300支持USB烧录、网口烧录和串口烧录三种方式,本文采用USB方式进行烧录。相关操作在Windows环境下进行 。 +Hi3516DV300开发板小型系统的烧录方式包括USB烧录、网口烧录两种方式,本文采用USB方式进行烧录。 1. 请连接好电脑和待烧录开发板,需要连接USB口和串口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 如果采用远程开发模式(windows+本地虚拟机Ubuntu),为确保开发板连接的是主机的USB口,请先禁用虚拟机的usb控制。 - > - > - VMware:在首选项的USB选项中设置将设备连接到主机,在虚拟机设置中移除USB控制器。 - > - > - VirtualBox:在Ubuntu设置的USB设备选项中将启动USB控制器的勾去掉。 2. 根据[Hi3516DV300开发板串口驱动安装指导](https://gitee.com/link?target=https%3A%2F%2Fdevice.harmonyos.com%2Fcn%2Fdocs%2Fdocumentation%2Fguide%2Fhi3516_hi3518-drivers-0000001050743695)、[Hi3516DV300开发板USB驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)安装USB驱动及USB转串口的驱动。若您的设备中已安装此驱动,请忽略该步骤。 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 -4. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 - - ![zh-cn_image_0000001267527124](figures/zh-cn_image_0000001267527124.png) - -5. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 +4. 在菜单栏中点击**Project Settings**按钮,进入Hi3516DV300工程配置界面。 ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 + + ![zh-cn_image_0000001198566365](figures/zh-cn_image_0000001198566365.png) + 6. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 - - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 - - upload_port:选择已查询到的串口号。 + + - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。DevEco Device Tool已预置默认的烧录文件信息,包括起始地址、分区大小、待烧录文件地址等,开发者可根据实际情况进行调整,点击每个待烧录文件后的![zh-cn_image_0000001275592884.png](figures/zh-cn_image_0000001275592884.png)按钮进行修改。 + + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + + ![zh-cn_image_0000001312778829](figures/zh-cn_image_0000001312778829.png) + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 + + - upload_port:选择已查询到的串口号。 + + ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 - ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) - -7. 在Partitions中,分别检查待烧录文件的烧录信息,包括起始地址、分区大小、待烧录文件地址等。DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 - - ![zh-cn_image_0000001312778829](figures/zh-cn_image_0000001312778829.png) - - 如需修改,请点击每个待烧录文件后的![zh-cn_image_0000001312898917](figures/zh-cn_image_0000001312898917.png)按钮进行修改。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 - - ![zh-cn_image_0000001312780249](figures/zh-cn_image_0000001312780249.png) +8. 点击hi3516dv300下的**Upload**按钮。 -8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + ![zh-cn_image_0000001266887264](figures/zh-cn_image_0000001266887264.png) -9. 点击hi3516dv300下的**Upload**按钮,此时待烧录文件会从Ubuntu系统传输到Windows下,传输完成后界面显示“Operation paused, Please press Enter key to continue”时,请点击**Enter**键启动烧录。 + 此时待烧录文件会从Ubuntu系统传输到Windows下,传输完成后界面显示“Operation paused, Please press Enter key to continue”时,请点击**Enter**键启动烧录。 - ![zh-cn_image_0000001266887264](figures/zh-cn_image_0000001266887264.png) + ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) -10. 在终端窗口显示如下提示信息时,请在15秒内,按住复位键,插拔USB线,最后松开复位键启动烧录。 +9. 在终端窗口显示如下提示信息时,请在15秒内,按住Update键,插拔USB线,最后松开Update键启动烧录。 - ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) + ![zh-cn_image_0000001326412233.png](figures/zh-cn_image_0000001326412233.png) - 启动烧录后,界面提示如下信息时,表示烧录成功。 + 启动烧录后,界面提示**SUCCESS**信息时,表示烧录成功。 ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) -11. 烧录成功后,请根据运行章节进行操作,启动系统。 +10. 烧录成功后,请根据运行章节进行操作,启动系统。 \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md index 073851b11eeb2b55cf5ea43824e4fd481f11bf1b..f7b9d1cf364c7d9ccf62295dc7822d75f002f7cc 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-building.md @@ -1,29 +1,36 @@ # 编译 -1. 在Projects中,点击**Settings**按钮,进入Hi3861配置界面。 +1. 在菜单栏中点击**Project Settings**按钮,进入Hi3861工程配置界面。 ![zh-cn_image_0000001265785209](figures/zh-cn_image_0000001265785209.png) -2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 +2. 在Tool Chain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**Install**按钮,自动安装所需工具链。 + + ![zh-cn_image_0000001221025048](figures/zh-cn_image_0000001221025048.png) + + + +3. 安装Hi3861V100相关工具链,部分工具安装需要使用root权限,请在“TERMINAL”窗口输入用户密码进行安装。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 - ![zh-cn_image_0000001221025048](figures/zh-cn_image_0000001221025048.png) + ![zh-cn_image_0000001280938208.png](figures/zh-cn_image_0000001280938208.png) 工具链自动安装完成后如下图所示。 ![zh-cn_image_0000001221344980](figures/zh-cn_image_0000001221344980.png) -3. 在“hi3861”配置页签中,设置源码的编译类型**build_type**,默认为"debug"类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 +4. 在“hi3861”配置页签中,设置源码的编译类型**build_type**,默认为"debug"类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 ![zh-cn_image_0000001265945173](figures/zh-cn_image_0000001265945173.png) -4. 在DevEco Device Tool界面的“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 +5. 在DevEco Device Tool界面的“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 ![zh-cn_image_0000001265505181](figures/zh-cn_image_0000001265505181.png) -5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 +6. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 ![zh-cn_image_0000001265665157](figures/zh-cn_image_0000001265665157.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md index e514364f4ac15c6ce95ab0a1de3de1ee3699c1d7..1215e4ae5e234fe777fdb9eece7362db527168b0 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-lite-steps-hi3861-burn.md @@ -3,6 +3,7 @@ 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 +Hi3861V100的镜像烧录通过Winodow环境进行烧录,开发者启动烧录操作后,DevEco Device Tool通过Remote远程模式,将Ubuntu环境下编译生成的带烧录程序文件拷贝至Windows目录下,然后通过Windows的烧录工具将程序文件烧录至开发板中。 Hi3861V100开发板支持串口烧录方式,在Windows下通过以下步骤进行烧录: @@ -13,47 +14,35 @@ Hi3861V100开发板支持串口烧录方式,在Windows下通过以下步骤进 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 +4. 在菜单栏中点击**Project Settings**按钮,进入Hi3861V100工程配置界面。 -4. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 + ![zh-cn_image_0000001333802045.png](figures/zh-cn_image_0000001333802045.png) - ![zh-cn_image_0000001315810857](figures/zh-cn_image_0000001315810857.png) - -5. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 ![zh-cn_image_0000001198943768](figures/zh-cn_image_0000001198943768.png) 6. 在“hi3861”页签,设置烧录选项,包括upload_port、upload_protocol和upload_partitions。 - upload_port:选择已查询的串口号。 - upload_protocol:选择烧录协议,选择“hiburn-serial”。 - - upload_partitions:选择待烧录的文件,默认选择hi3861_app。 + - upload_partitions:选择待烧录的文件名称。DevEco Device Tool已预置默认的烧录文件信息,如果需要修改待烧录文件地址,可点击每个待烧录文件后的![zh-cn_image_0000001333642545.png](figures/zh-cn_image_0000001333642545.png)按钮进行修改。 ![zh-cn_image_0000001243704061](figures/zh-cn_image_0000001243704061.png) -7. 在Partitions中,检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 - - ![zh-cn_image_0000001312993353](figures/zh-cn_image_0000001312993353.png) - - 如需修改,请点击待烧录文件后的![zh-cn_image_0000001312793665](figures/zh-cn_image_0000001312793665.png)按钮进行修改。 - - ![zh-cn_image_0000001312912509](figures/zh-cn_image_0000001312912509.png) +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 -8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 - -9. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 +8. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 ![zh-cn_image_0000001216440138](figures/zh-cn_image_0000001216440138.png) +9. 启动烧录后,显示如下提示信息时,请在15秒内,按下开发板上的RST按钮重启开发板。 -1. 启动烧录后,显示如下提示信息时,请在15秒内,按下开发板上的RST按钮重启开发板。 - - ![zh-cn_image_0000001198466090](figures/zh-cn_image_0000001198466090.png) + ![zh-cn_image_0000001198466090](figures/zh-cn_image_0000001198466090.png) 重新上电后,界面提示如下信息时,表示烧录成功。 - + ![zh-cn_image_0000001216761476](figures/zh-cn_image_0000001216761476.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md index 6dcb126cc5dafd09936c79bc745a1be9f83e703c..ec82ec30048681ac246efdc3cbb6f583026abc75 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-create-project.md @@ -8,28 +8,16 @@ ![zh-cn_image_0000001278358765](figures/zh-cn_image_0000001278358765.png) -2. 选择要导入的源码目录,点击**Import**打开。 +2. 选择OpenHarmony源码根目录路径,然后再选择**Import OpenHarmony Source**选项,点击**Import**进行导入。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 工程存储路径不能包含中文字符、空格。如果工程存储路径包含中文字符或空格,可能导致编译失败。 - ![zh-cn_image_0000001271562277](figures/zh-cn_image_0000001271562277.png) + ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) -3. 首次导入时,会出现如下提示框,点击**Import**。 - - ![zh-cn_image_0000001314277321](figures/zh-cn_image_0000001314277321.png) - -4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 - - ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - -5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。下图以导入Hi3516DV300为例进行展示 。 - - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - Hi3516DV300开发板Product选择“Hi3516DV300”。 - > - > - RK3568开发板Product选择“rk3568”。 +3. 在Import Project界面,选择**Product**后,会自动填充对应的SOC、Board、Company和Kernel信息,然后Ohos Ver选择对应的OpenHarmony源码版本。 ![zh-cn_image_0000001271448821](figures/zh-cn_image_0000001271448821.png) -6. 点击**Open**打开工程或源码。 +4. 点击**Open**打开工程或源码。 + diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md index 6b8179243ac7c242adf059a08cfc7894b3871ada..c8271ba7d1e4fadc0a3b96e4388cc7b1d45a3b54 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-env-setup-win-ubuntu.md @@ -1,7 +1,7 @@ # 搭建Windows+Ubuntu混合开发环境 -通常在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,需要使用Ubuntu的编译环境对源码进行编译。 +通常在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此,建议使用Ubuntu的编译环境对源码进行编译。 在以上的设备开发场景中,可以搭建一套Windows+Ubuntu混合开发的环境,其中使用Windows平台的DevEco Device Tool可视化界面进行相关操作,通过远程连接的方式对接Ubuntu下的DevEco Device Tool(可以不安装Visual Studio Code),然后对Ubuntu下的源码进行开发、编译、烧录等操作。 @@ -11,7 +11,7 @@ - Windows系统要求:Windows10 64位系统。 -- Ubuntu系统要求:Ubuntu20.04及以上版本,内存推荐16 GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本,内存推荐16 GB及以上。 - Ubuntu系统的用户名不能包含中文字符。 @@ -61,22 +61,19 @@ sudo ./devicetool-linux-tool-3.0.0.401.sh ``` - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 - > - > 安装过程中,会弹出用户协议和隐私声明签署的页面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 - > - > 如果未弹出用户协议和隐私声明签署的页面,而直接退出了安装,请先执行apt-get install whiptail,然后再执行安装命令。 +5. 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 + ![zh-cn_image_0000001322167645.png](figures/zh-cn_image_0000001322167645.png) + 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 - + ![zh-cn_image_0000001198722374](figures/zh-cn_image_0000001198722374.png) + ## 搭建Windows开发环境 -1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download) Windows版。 2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md index a94a3cc3b6b700bbc73e58071ebd17a5ab6afb22..69cd37abf642a33c9710e3adc052e58c31eae7ce 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-build.md @@ -5,28 +5,31 @@ ![zh-cn_image_0000001265492885](figures/zh-cn_image_0000001265492885.png) -2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 +2. 在Tool Chain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**Install**按钮,自动安装所需工具链。 + + ![zh-cn_image_0000001227277128](figures/zh-cn_image_0000001227277128.png) + +3. 安装Hi3516DV300相关工具链,部分工具安装需要使用root权限,请在“TERMINAL”窗口输入用户密码进行安装。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 - ![zh-cn_image_0000001227277128](figures/zh-cn_image_0000001227277128.png) + ![zh-cn_image_0000001220852755](figures/zh-cn_image_0000001220852755.png) 工具链自动安装完成后如下图所示。 ![zh-cn_image_0000001227757036](figures/zh-cn_image_0000001227757036.png) -3. 在“hi3516dv300”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 +4. 在“hi3516dv300”配置页签中,设置源码的编译类型**build_type**,默认为“debug“类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 - ![zh-cn_image_0000001221172710](figures/zh-cn_image_0000001221172710.png) + ![zh-cn_image_0000001221172711](figures/zh-cn_image_0000001221172711.png) -4. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 +5. 在“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 ![zh-cn_image_0000001265772913](figures/zh-cn_image_0000001265772913.png) -5. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 +6. 等待编译完成,在**TERMINAL**窗口输出“SUCCESS”,编译完成。 - ![zh-cn_image_0000001221012766](figures/zh-cn_image_0000001221012766.png) + ![zh-cn_image_0000001221012768](figures/zh-cn_image_0000001221012768.png) 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[Hi3516DV300开发板烧录](quickstart-ide-standard-running-hi3516-burning.md)。 diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md index b6ef4a1b27a78439ee42f87e56c0db40099b459e..58fc2954a1b9fa42cd0b82b8388bf0e746e15b42 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-hi3516-burning.md @@ -3,14 +3,7 @@ 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 - -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> - 如您使用的是master分支2022年5月9日及之后的源码,请使用HiTool工具进行烧录。 -> -> - 当前版本的DevEco Device Tool暂不支持上述日期后的源码烧录,将在下个版本中适配。 - - -在Windows下采用USB烧录方式进行Hi3516DV300的烧录。 +Hi3516DV300开发板小型系统的烧录方式包括USB烧录、网口烧录两种方式,本文采用USB方式进行烧录。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** @@ -19,66 +12,55 @@ 1. 请连接好电脑和待烧录开发板,需要连接USB口和串口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 如果采用远程开发模式(windows+本地虚拟机Ubuntu),为确保开发板连接的是主机的USB口,请先禁用虚拟机的usb控制。 - > - > - VMware:在首选项的USB选项中设置将设备连接到主机,在虚拟机设置中移除USB控制器。 - > - > - VirtualBox:在Ubuntu设置的USB设备选项中将启动USB控制器的勾去掉。 - 2. 根据[Hi3516DV300开发板串口驱动安装指导](https://gitee.com/link?target=https%3A%2F%2Fdevice.harmonyos.com%2Fcn%2Fdocs%2Fdocumentation%2Fguide%2Fhi3516_hi3518-drivers-0000001050743695)、[Hi3516DV300开发板USB驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)安装USB驱动及USB转串口的驱动。若您的设备中已安装此驱动,请忽略该步骤。 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 - -4. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 - - ![zh-cn_image_0000001267932252](figures/zh-cn_image_0000001267932252.png) - -5. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 +4. 在菜单栏中点击**Project Settings**按钮,进入Hi3516DV300工程配置界面。 ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 + + ![zh-cn_image_0000001198566365](figures/zh-cn_image_0000001198566365.png) + 6. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 - - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、boot、updater、misc、system、vendor和userdata。 - - upload_port:选择已查询的串口号。 - - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 + - upload_partitions:选择待烧录程序的配置文件(已预置默认的配置文件),该配置文件会指定烧录文件名称、起始烧录地址、地址长度等信息;同时请勾选**Enable to use upload_partitions_profile for upload**选项。 - ![zh-cn_image_0000001177478136](figures/zh-cn_image_0000001177478136.png) + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > + > 如需修改烧录profile文件,在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + > + > 首次烧录,请勾选**Enable to use upload_partitions_profile for upload**选项,会自动生成upload_partitions文件。再次烧录时,可根据实际情况选择生成upload_partitions文件进行自定义烧录,也可以再勾选**Enable to use upload_partitions_profile for upload**选项,使用upload_partitions_profile重新生成upload_partitions文件用于烧录。 -7. 在Partitions中,分别检查待烧录文件的烧录信息,包括起始地址、分区大小、待烧录文件地址等。DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 - ![zh-cn_image_0000001312541849](figures/zh-cn_image_0000001312541849.png) + - upload_port:选择已查询的串口号。 - 如需修改,请点击每个待烧录文件后的![zh-cn_image_0000001265302382](figures/zh-cn_image_0000001265302382.png)按钮进行修改。 + ![zh-cn_image_0000001177478136](figures/zh-cn_image_0000001177478136.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 - ![zh-cn_image_0000001264982466](figures/zh-cn_image_0000001264982466.png) +8. 点击hi3516dv300下的**Upload**按钮。 -8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + ![zh-cn_image_0000001267532292](figures/zh-cn_image_0000001267532292.png) -9. 点击hi3516dv300下的**Upload**按钮,此时待烧录文件会从Ubuntu系统传输到Windows下,传输完成后界面显示“Operation paused, Please press Enter key to continue”时,请点击**Enter**键启动烧录。 + 此时待烧录文件会从Ubuntu系统传输到Windows下,传输完成后界面显示“Operation paused, Please press Enter key to continue”时,请点击**Enter**键启动烧录。 - ![zh-cn_image_0000001267532292](figures/zh-cn_image_0000001267532292.png) + ![zh-cn_image_0000001114129427](figures/zh-cn_image_0000001114129427.png) -10. 在终端窗口显示如下提示信息时,请在15秒内,按住复位键,插拔USB线,最后松开复位键启动烧录。 +9. 在终端窗口显示如下提示信息时,请在15秒内,按住Update键,插拔USB线,最后松开Update键启动烧录。 - ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) + ![zh-cn_image_0000001326412233.png](figures/zh-cn_image_0000001326412233.png) - 启动烧录后,界面提示如下信息时,表示烧录成功。 + 启动烧录后,界面提示**SUCCESS**信息时,表示烧录成功。 - ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) + ![zh-cn_image_0000001160649344](figures/zh-cn_image_0000001160649344.png) -11. 烧录成功后,请根据运行章节进行操作,启动系统。 +11. 烧录成功后,请根据运行章节进行操作,启动系统。 \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md index ad8ab0d162846312c1c05c21a37d2ad1b9cc594b..af04bf580d6b453a928e221207f573e2e88dc6aa 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-build.md @@ -1,24 +1,28 @@ # 编译 -1. 在Projects中,点击**Settings**按钮,进入HH-SCDY200配置界面。 +1. 在菜单栏中点击**Project Settings**按钮,进入RK3568工程配置界面。 - ![zh-cn_image_0000001221036768](figures/zh-cn_image_0000001221036768.png) + ![zh-cn_image_0000001265492885](figures/zh-cn_image_0000001265492885.png) -2. 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**SetUp**按钮,自动安装所需工具链。 +2. 在Toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击**Install**按钮,自动安装所需工具链。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 如果出现安装pip组件失败,可参考[修改Python源的方法](https://device.harmonyos.com/cn/docs/documentation/guide/ide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。 ![zh-cn_image_0000001221356692](figures/zh-cn_image_0000001221356692.png) + 安装RK3568相关工具链,部分工具的安装需要使用root权限,请在“TERMINAL”窗口输入用户密码进行安装。 + + ![zh-cn_image_0000001327429541.png](figures/zh-cn_image_0000001327429541.png) + 工具链自动安装完成后如下图所示。 ![zh-cn_image_0000001265676877](figures/zh-cn_image_0000001265676877.png) 3. 在“hh_scdy200”配置页签中,设置源码的编译类型**build_type**,默认为"debug类型,请根据需要进行修改。然后点击**Save**按钮进行保存。 - ![zh-cn_image_0000001265956897](figures/zh-cn_image_0000001265956897.png) + ![zh-cn_image_0000001276354454.png](figures/zh-cn_image_0000001276354454.png) 4. 在DevEco Device Tool界面的“PROJECT TASKS”中,点击对应开发板下的**Build**按钮,执行编译。 @@ -28,4 +32,4 @@ ![zh-cn_image_0000001222361042](figures/zh-cn_image_0000001222361042.png) - 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[RK3568开发板烧录](quickstart-standard-running-rk3568-burning.md)。 + 编译完成后,可以在工程的**out**目录下,查看编译生成的文件,用于后续的[RK3568开发板烧录](quickstart-standard-running-rk3568-burning.md)。 \ No newline at end of file diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md index ac711c8e61f7eb9dbd16fc65450a9f39439812fe..fe9c9c1a1facab4a854539c7ca6757ed20c09331 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-standard-running-rk3568-burning.md @@ -3,59 +3,46 @@ 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 +RK3568的镜像烧录通过Winodow环境进行烧录,开发者启动烧录操作后,DevEco Device Tool通过Remote远程模式,将Ubuntu环境下编译生成的带烧录程序文件拷贝至Windows目录下,然后通过Windows的烧录工具将程序文件烧录至开发板中。 -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> - 如您使用的是master分支2022年5月9日及之后的源码,请使用RKDevTool工具进行烧录,请参考《[HiHope-DAYU200烧录指导](https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97)》进行操作。 -> -> - 当前版本的DevEco Device Tool暂不支持上述日期后的源码烧录,将在下个版本中适配。 +1. [下载](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/windows/DriverAssitant_v5.1.1.zip)并安装驱动DriverInstall.exe。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > + > 如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮卸载驱动,然后再点击"驱动安装"按钮安装驱动。 -1. [下载](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/windows/DriverAssitant_v5.1.1.zip)并安装驱动DriverInstall.exe,双击DriverInstall.exe打开安装程序,点击“驱动安装”按钮,按提示安装USB驱动。 - - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮卸载驱动,然后再点击"驱动安装"按钮安装驱动。 - -2. 请连接好电脑和待烧录开发板,连接USB接口。 - - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 如果采用远程开发模式(windows+本地虚拟机Ubuntu),为确保开发板连接的是主机的USB口,请先禁用虚拟机的usb控制。 - > - > - VMware:在首选项的USB选项中设置将设备连接到主机,在虚拟机设置中移除USB控制器。 - > - > - VirtualBox:在Ubuntu设置的USB设备选项中将启动USB控制器的勾去掉。 +2. 请连接好电脑和待烧录开发板,连接USB接口,具体可参考[RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)。 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 -4. 打开DevEco Device Tool,在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 +4. 在菜单栏中点击**Project Settings**按钮,进入RK3568工程配置界面。 - ![zh-cn_image_0000001239661509](figures/zh-cn_image_0000001239661509.png) + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) -5. 在“hh_scdy200”页签,设置烧录选项,包括upload_partitions和upload_protocol。 +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 - - upload_partitions:选择待烧录的文件。 - - upload_protocol:选择烧录协议,固定选择“upgrade”。 + ![zh-cn_image_0000001239661509](figures/zh-cn_image_0000001239661509.png) - ![zh-cn_image_0000001194504874](figures/zh-cn_image_0000001194504874.png) -6. 在Partitions中,分别检查待烧录文件的烧录信息,包括起始地址、分区大小、待烧录文件地址等。DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 +6. 在“hh_scdy200”页签,设置烧录选项,包括upload_partitions和upload_protocol。 - ![zh-cn_image_0000001265041892](figures/zh-cn_image_0000001265041892.png) + - upload_partitions_profile:选择待烧录程序的配置文件,该配置文件会指定烧录文件名称、起始烧录地址、地址长度等信息;同时请勾选**Enable to use upload_partitions_profile for upload**选项。 - 如需修改,请点击每个待烧录文件后的![zh-cn_image_0000001265361888](figures/zh-cn_image_0000001265361888.png)按钮进行修改。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > + > 如需修改烧录profile文件,在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + > + > 首次烧录,请勾选**Enable to use upload_partitions_profile for upload**选项,会自动生成upload_partitions文件。再次烧录时,可根据实际情况选择生成upload_partitions文件进行自定义烧录,也可以再勾选**Enable to use upload_partitions_profile for upload**选项,使用upload_partitions_profile重新生成upload_partitions文件用于烧录。 + + - upload_protocol:选择烧录协议,固定选择“upgrade”。 - ![zh-cn_image_0000001265201928](figures/zh-cn_image_0000001265201928.png) + ![zh-cn_image_0000001194504874](figures/zh-cn_image_0000001194504874.png) 7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md index dc9990c857a71bf7986a77805a3c6095bd836ea2..79b49ce5480cdd4de7fad23c3ef8f273ac7fa04b 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md @@ -5,7 +5,7 @@ - Windows系统要求:Windows10 64位系统。 -- Ubuntu系统要求:Ubuntu18.04及以上版本,内存推荐16 GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本,内存推荐16 GB及以上。 - Windows系统和Ubuntu系统的用户名不能包含中文字符。 @@ -58,7 +58,7 @@ ### 安装Window版本DevEco Device Tool -1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download) Windows版。 2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 @@ -107,6 +107,9 @@ ### 安装Ubuntu版本DevEco Device Tool +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 如果没有Ubuntu系统,可在Windows系统中通过虚拟机方式搭建Ubuntu系统,具体请参考[Ubuntu系统安装指导](https://developer.huawei.com/consumer/cn/training/course/video/C101639987816176315)。Ubuntu系统安装完成后,请根据指导完成[Ubuntu基础环境配置](https://developer.huawei.com/consumer/cn/training/course/video/C101639988048536240),然后再根据本章节进行DevEco Device Tool工具的安装。 + 1. 将Ubuntu Shell环境修改为bash。 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 @@ -141,18 +144,16 @@ ``` 4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.0.0.401.sh请根据实际进行修改。 - + ``` sudo ./devicetool-linux-tool-3.0.0.401.sh ``` - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 - > - > 安装过程中,会弹出用户协议和隐私声明签署的页面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 - > - > 如果未弹出用户协议和隐私声明签署的页面,而直接退出了安装,请先执行apt-get install whiptail,然后再执行安装命令。 +5. 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 + + + + ![zh-cn_image_0000001322167645.png](figures/zh-cn_image_0000001322167645.png) 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md index 93c7500410d975b0f7757541753d9d463f8f1643..d8e832cb33df4d07a5551cfe806231c484bceff5 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-building.md @@ -1,7 +1,7 @@ # 编译 -OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-lite-reference.md#使用buildsh脚本编译源码)。 +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](quickstart-lite-reference.md)。 请进入源码根目录,执行如下命令进行编译: diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md index d8808b6e7d40f4ce63cab7c72d62397b3ca65718..3e063c33b99b7a592c2f13f8eac897f0028f6058 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-burn.md @@ -9,33 +9,24 @@ Hi3516DV300支持USB烧录、网口烧录和串口烧录三种方式,本文采 ## 导入源码 -在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-lite-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](quickstart-lite-env-setup.md)的情况下,您还需要通过以下步骤将编译好的源码导入Windows下,方可进行烧录。 1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 ![zh-cn_image_0000001278358765](figures/zh-cn_image_0000001278358765.png) -2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 +2. 选择OpenHarmony源码根目录路径(需要访问Ubuntu下的源码目录),然后再选择**Import OpenHarmony Source**选项,点击**Import**进行导入。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 工程存储路径不能包含中文字符、空格。 - ![zh-cn_image_0000001279745617](figures/zh-cn_image_0000001279745617.png) + ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) -3. 首次导入时,会出现如下提示框,点击**Import**。 - - ![zh-cn_image_0000001266758578](figures/zh-cn_image_0000001266758578.png) - -4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 - - ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - -5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择ipcamera_hispark_taurus。 +3. 在Import Project界面,选择**Product**后,会自动填充对应的SOC、Board、Company和Kernel信息,然后**Ohos Ver**选择对应的OpenHarmony源码版本。 ![zh-cn_image_0000001279586409](figures/zh-cn_image_0000001279586409.png) -6. 点击**Open**打开工程或源码。 - +4. 点击**Open**打开工程或源码。 ## 烧录 @@ -43,64 +34,55 @@ Hi3516DV300支持USB烧录、网口烧录和串口烧录三种方式,本文采 1. 请连接好电脑和待烧录开发板,需要连接USB口和串口,具体可参考[Hi3516DV300开发板介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-introduction-hi3516.md)。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 如果采用远程开发模式(windows+本地虚拟机Ubuntu),为确保开发板连接的是主机的USB口,请先禁用虚拟机的usb控制。 - > - > - VMware:在首选项的USB选项中设置将设备连接到主机,在虚拟机设置中移除USB控制器。 - > - > - VirtualBox:在Ubuntu设置的USB设备选项中将启动USB控制器的勾去掉。 - 2. 根据[Hi3516DV300开发板串口驱动安装指导](https://gitee.com/link?target=https%3A%2F%2Fdevice.harmonyos.com%2Fcn%2Fdocs%2Fdocumentation%2Fguide%2Fhi3516_hi3518-drivers-0000001050743695)、[Hi3516DV300开发板USB驱动安装指导](https://device.harmonyos.com/cn/docs/documentation/guide/usb_driver-0000001058690393)安装USB驱动及USB转串口的驱动。若您的设备中已安装此驱动,请忽略该步骤。 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 - -4. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 +4. 在菜单栏中点击**Project Settings**按钮,进入Hi3516DV300工程配置界面。 - ![zh-cn_image_0000001315729481](figures/zh-cn_image_0000001315729481.png) + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) -5. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 - ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) + ![zh-cn_image_0000001198566365](figures/zh-cn_image_0000001198566365.png) 6. 在“hi3516dv300”页签,设置烧录选项,包括upload_partitions、upload_port和upload_protocol。 - - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。 - - upload_port:选择已查询到的串口号。 - - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 + - upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。DevEco Device Tool已预置默认的烧录文件信息,包括起始地址、分区大小、待烧录文件地址等,开发者可根据实际情况进行调整,点击每个待烧录文件后的![zh-cn_image_0000001275592884.png](figures/zh-cn_image_0000001275592884.png)按钮进行修改。 - ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 -7. 在Partitions中,分别检查待烧录文件的烧录信息,包括起始地址、分区大小、待烧录文件地址等。DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 + ![zh-cn_image_0000001312778829](figures/zh-cn_image_0000001312778829.png) - ![zh-cn_image_0000001312778829](figures/zh-cn_image_0000001312778829.png) + - upload_protocol:选择烧录协议,固定选择“hiburn-usb”。 - 如需修改,请点击每个待烧录文件后的![zh-cn_image_0000001312898917](figures/zh-cn_image_0000001312898917.png)按钮进行修改。 + - upload_port:选择已查询到的串口号。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + ![zh-cn_image_0000001223190441](figures/zh-cn_image_0000001223190441.png) + +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + +8. 点击hi3516dv300下的**Upload**按钮。 - ![zh-cn_image_0000001312780249](figures/zh-cn_image_0000001312780249.png) + ![zh-cn_image_0000001266887264](figures/zh-cn_image_0000001266887264.png) -8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 + 此时待烧录文件会从Ubuntu系统传输到Windows下,传输完成后界面显示“Operation paused, Please press Enter key to continue”时,请点击**Enter**键启动烧录。 -9. 点击hi3516dv300下的**Upload**按钮,此时待烧录文件会从Ubuntu系统传输到Windows下,传输完成后界面显示“Operation paused, Please press Enter key to continue”时,请点击**Enter**键启动烧录。 + ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) - ![zh-cn_image_0000001316929453](figures/zh-cn_image_0000001316929453.png) +9. 在终端窗口显示如下提示信息时,请在15秒内,按住Update键,插拔USB线,最后松开Update键启动烧录。 -10. 在终端窗口显示如下提示信息时,请在15秒内,按住复位键,插拔USB线,最后松开复位键启动烧录。 + ![zh-cn_image_0000001326412233.png](figures/zh-cn_image_0000001326412233.png) - ![zh-cn_image_0000001114129426](figures/zh-cn_image_0000001114129426.png) + 启动烧录后,界面提示**SUCCESS**信息时,表示烧录成功。 - 启动烧录后,界面提示如下信息时,表示烧录成功。 + ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) - ![zh-cn_image_0000001160649343](figures/zh-cn_image_0000001160649343.png) +10. 烧录成功后,请根据运行章节进行操作,启动系统。 -11. 烧录成功后,请根据运行章节进行操作,启动系统。 diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md index 83523ee4a8177dfb46d1232403374bb842477bf5..34efde6b4e3910ffc15f21e1656b2362f1d29abb 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-building.md @@ -1,7 +1,7 @@ # 编译 -OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-lite-reference.md#使用buildsh脚本编译源码)。 +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](quickstart-lite-reference.md)。 在Ubuntu环境下进入源码根目录,执行如下命令进行编译: diff --git a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md index 51320f8597c406d2f6d1af928b81724aedf190e9..e45be5b8f87f812481b992e4d50c7302ef51980a 100644 --- a/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md +++ b/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3861-burn.md @@ -4,37 +4,29 @@ 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 -在Windows下通过串口烧录Hi3861 WLAN模组。 +Hi3861V100开发板支持串口烧录方式,在Windows下通过以下步骤进行烧录: ## 导入源码 -在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-lite-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](quickstart-lite-env-setup.md)的情况下,您还需要通过以下步骤将编译好的源码导入Windows下,方可进行烧录。 1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 ![zh-cn_image_0000001278358765](figures/zh-cn_image_0000001278358765.png) -2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 +2. 选择OpenHarmony源码根目录路径(需要访问Ubuntu下的源码目录),然后再选择**Import OpenHarmony Source**选项,点击**Import**进行导入。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 工程存储路径不能包含中文字符、空格。 - ![zh-cn_image_0000001235265380](figures/zh-cn_image_0000001235265380.png) + ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) -3. 首次导入时,会出现如下提示框,点击**Import**。 +3. 在Import Project界面,选择**Product**后,会自动填充对应的SOC、Board、Company和Kernel信息,然后**Ohos Ver**选择对应的OpenHarmony源码版本。 - ![zh-cn_image_0000001314159661](figures/zh-cn_image_0000001314159661.png) + ![zh-cn_image_0000001279425450](figures/zh-cn_image_0000001279425450.png) -4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 - - ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - -5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择wifiiot_hispark_pegasus。 - - ![zh-cn_image_0000001279425449](figures/zh-cn_image_0000001279425449.png) - -6. 点击**Open**打开工程或源码。 +4. 点击**Open**打开工程或源码。 ## 烧录 @@ -48,18 +40,16 @@ 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) + + +4. 在菜单栏中点击**Project Settings**按钮,进入Hi3861V100工程配置界面。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 - -4. 在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。 - - ![zh-cn_image_0000001316011485](figures/zh-cn_image_0000001316011485.png) + ![zh-cn_image_0000001333802045.png](figures/zh-cn_image_0000001333802045.png) -5. 在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 ![zh-cn_image_0000001198943768](figures/zh-cn_image_0000001198943768.png) @@ -67,20 +57,20 @@ - upload_port:选择已查询的串口号。 - upload_protocol:选择烧录协议,选择“hiburn-serial”。 - - upload_partitions:选择待烧录的文件,默认选择hi3861_app。 + - upload_partitions:选择待烧录的文件名称。DevEco Device Tool已预置默认的烧录文件信息,如果需要修改待烧录文件地址,可点击每个待烧录文件后的![zh-cn_image_0000001333642545.png](figures/zh-cn_image_0000001333642545.png)按钮进行修改。 ![zh-cn_image_0000001243704061](figures/zh-cn_image_0000001243704061.png) -7. 在Partitions中,检查待烧录文件的烧录信息,DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 - - ![zh-cn_image_0000001312993353](figures/zh-cn_image_0000001312993353.png) +7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 - 如需修改,请点击待烧录文件后的![zh-cn_image_0000001312793665](figures/zh-cn_image_0000001312793665.png)按钮进行修改。 +8. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 - ![zh-cn_image_0000001312912509](figures/zh-cn_image_0000001312912509.png) + ![zh-cn_image_0000001216440138](figures/zh-cn_image_0000001216440138.png) -8. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 +9. 启动烧录后,显示如下提示信息时,请在15秒内,按下开发板上的RST按钮重启开发板。 -9. 点击**Open**打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的**Upload**按钮,启动烧录。 + ![zh-cn_image_0000001198466090](figures/zh-cn_image_0000001198466090.png) - ![zh-cn_image_0000001216440138](figures/zh-cn_image_0000001216440138.png) + 重新上电后,界面提示如下信息时,表示烧录成功。 + + ![zh-cn_image_0000001216761476](figures/zh-cn_image_0000001216761476.png) diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md b/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md index 450ef18b431a08dfc0b9c7ea92bc37367505c12a..e8a0a88b3abc09605eb43d1e10ba23528b05ede5 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-env-setup.md @@ -5,7 +5,7 @@ - Windows系统要求:Windows10 64位系统。 -- Ubuntu系统要求:Ubuntu18.04及以上版本,内存推荐16 GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本,内存推荐16 GB及以上。 - Windows系统和Ubuntu系统的用户名不能包含中文字符。 @@ -58,7 +58,7 @@ ### 安装Window版本DevEco Device Tool -1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download)Windows版。 +1. 下载[DevEco Device Tool 3.0 Release](https://device.harmonyos.com/cn/ide#download) Windows版。 2. 解压DevEco Device Tool压缩包,双击安装包程序,点击Next进行安装。 @@ -107,6 +107,11 @@ ### 安装Ubuntu版本DevEco Device Tool + +> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** +> 如果没有Ubuntu系统,可在Windows系统中通过虚拟机方式搭建Ubuntu系统,具体请参考[Ubuntu系统安装指导](https://developer.huawei.com/consumer/cn/training/course/video/C101639987816176315)。Ubuntu系统安装完成后,请根据指导完成[Ubuntu基础环境配置](https://developer.huawei.com/consumer/cn/training/course/video/C101639988048536240),然后再根据本章节进行DevEco Device Tool工具的安装。 + + 1. 将Ubuntu Shell环境修改为bash。 1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。 @@ -146,13 +151,9 @@ sudo ./devicetool-linux-tool-3.0.0.401.sh ``` - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 安装过程中,会自动检查Python是否安装,且要求Python为3.8~3.9版本。如果不满足,则安装过程中会自动安装,提示“Do you want to continue?”,请输入“Y”后继续安装。 - > - > 安装过程中,会弹出用户协议和隐私声明签署的页面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 - > - > 如果未弹出用户协议和隐私声明签署的页面,而直接退出了安装,请先执行apt-get install whiptail,然后再执行安装命令。 +5. 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装。 + + ![zh-cn_image_0000001322167645.png](figures/zh-cn_image_0000001322167645.png) 安装完成后,当界面输出“Deveco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md index c4adcab951ed7143729b0347a54a221ff1e76ad2..0183bd5f33a601d4d5ad2755f2e4df6c9a5f8096 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md @@ -1,7 +1,7 @@ # 编译 -OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-standard-reference.md#使用buildsh脚本编译源码)。 +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](quickstart-standard-reference.md)。 在Ubuntu环境下进入源码根目录,执行如下命令进行编译: @@ -19,7 +19,7 @@ OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build. . ``` -3. 在built-in下选择hispark_taurus_standard并回车。 +3. 在hisilicon下选择hispark_taurus_standard并回车。 **图1** Hi3516编译设置图例   diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md index 9e5f5d7408eedf712da8de358e536f91fa83508f..f9f1a694df87370d29ce0c859c13ee50ea18879b 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-burning.md @@ -15,7 +15,7 @@ ## 导入源码 -在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-standard-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](quickstart-standard-env-setup.md)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md index aedb8fe35b41a65419cd7dd77219c42901741f02..88eeac16d99dd0862961af1891b50d7567206854 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-build.md @@ -1,7 +1,7 @@ # 编译 -OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](../quick-start/quickstart-standard-reference.md#使用buildsh脚本编译源码)。 +OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码](quickstart-standard-reference.md)。 在Ubuntu环境下进入源码根目录,执行如下命令进行编译: diff --git a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md index ff7bafd1dadd3eac7295fc895513fa77536ff118..061fb74a6b6914e4dfcabf0feda51ef7a82da391 100644 --- a/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md +++ b/zh-cn/device-dev/quick-start/quickstart-standard-running-rk3568-burning.md @@ -3,96 +3,71 @@ 烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。DevEco Device Tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。 - -> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -> - 如您使用的是master分支2022年5月9日及之后的源码,请使用RKDevTool工具进行烧录,请参考《[HiHope-DAYU200烧录指导](https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97)》进行操作。 -> -> - 当前版本的DevEco Device Tool暂不支持上述日期后的源码烧录,将在下个版本中适配。 - - -在Windows环境下通过以下步骤进行RK3568的烧录: +RK3568的镜像烧录通过Winodow环境进行烧录。 ## 导入源码 -在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](../quick-start/quickstart-standard-env-setup.md#安装deveco-device-tool)的情况下,您还需要通过以下步骤导入源码后,方可进行烧录。 +在编译完成后,[保证Windows系统可以远程访问Ubuntu环境](quickstart-standard-env-setup.md)的情况下,您还需要通过以下步骤将编译好的源码导入Windows下,方可进行烧录。 1. 打开DevEco Device Tool,进入Home页,点击**Import Project**打开工程。 ![zh-cn_image_0000001278358765](figures/zh-cn_image_0000001278358765.png) -2. 选择要导入的源码目录(需要访问Ubuntu下的源码目录),点击**Import**打开。 +2. 选择OpenHarmony源码根目录路径(需要访问Ubuntu下的源码目录),然后再选择**Import OpenHarmony Source**选项,点击**Import**进行导入。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 工程存储路径不能包含中文字符、空格。 - ![zh-cn_image_0000001279746305](figures/zh-cn_image_0000001279746305.png) - -3. 首次导入时,会出现如下提示框,点击**Import**。 - - ![zh-cn_image_0000001313959369](figures/zh-cn_image_0000001313959369.png) + ![zh-cn_image_0000001271477045](figures/zh-cn_image_0000001271477045.png) -4. 在Select Project type界面,选择**Import from OpenHarmony Source**。 - - ![zh-cn_image_0000001215743910](figures/zh-cn_image_0000001215743910.png) - -5. 在Import Project界面,选择**Product**后,会自动填充对应的MCU、Board、company和kernel信息,然后**ohosVersion**选择对应的OpenHarmony源码版本。此处选择rk3568。 +3. 在Import Project界面,选择**Product**后,会自动填充对应的SOC、Board、Company和Kernel信息,然后**Ohos Ver**选择对应的OpenHarmony源码版本。 ![zh-cn_image_0000001279587085](figures/zh-cn_image_0000001279587085.png) -6. 点击**Open**打开工程或源码。 +4. 点击**Open**打开工程或源码。 ## 烧录 完成源码导入后,通过以下步骤进行烧录: -1. [下载](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/windows/DriverAssitant_v5.1.1.zip)并安装驱动DriverInstall.exe,双击DriverInstall.exe打开安装程序,点击“驱动安装”按钮,按提示安装USB驱动。 +1. [下载](https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97/windows/DriverAssitant_v5.1.1.zip)并安装驱动DriverInstall.exe。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > > 如果已经安装旧版本的烧写工具,请先点击"驱动卸载"按钮卸载驱动,然后再点击"驱动安装"按钮安装驱动。 -2. 请连接好电脑和待烧录开发板,连接USB接口。 - - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > - > 如果采用远程开发模式(windows+本地虚拟机Ubuntu),为确保开发板连接的是主机的USB口,请先禁用虚拟机的usb控制。 - > - > - VMware:在首选项的USB选项中设置将设备连接到主机,在虚拟机设置中移除USB控制器。 - > - > - VirtualBox:在Ubuntu设置的USB设备选项中将启动USB控制器的勾去掉。 +2. 请连接好电脑和待烧录开发板,连接USB接口,具体可参考[RK3568开发板介绍](quickstart-standard-board-introduction-rk3568.md)。 3. 在DevEco Device Tool中,选择REMOTE DEVELOPMENT > Local PC,查看远程计算机(Ubuntu开发环境)与本地计算机(Windows开发环境)的连接状态。 - 如果Local PC右边连接按钮为![zh-cn_image_0000001261315939](figures/zh-cn_image_0000001261315939.png),则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。 + - 如果Local PC右边连接按钮为![zh-cn_image_0000001261515989](figures/zh-cn_image_0000001261515989.png),则点击绿色按钮进行连接。连接时DevEco Device Tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。 ![zh-cn_image_0000001261395999](figures/zh-cn_image_0000001261395999.png) - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 该操作仅在远程模式(Windows+Ubuntu混合开发环境)中需要设置,如果采用本地模式(Windows开发环境或Ubuntu开发环境),则请跳过该步骤。 +4. 在菜单栏中点击**Project Settings**按钮,进入RK3568工程配置界面。 -4. 打开DevEco Device Tool,在QUICK ACCESS > DevEco Home > Projects中,点击**Settings**打开工程配置界面。 + ![zh-cn_image_0000001198566364](figures/zh-cn_image_0000001198566364.png) - ![zh-cn_image_0000001239661509](figures/zh-cn_image_0000001239661509.png) +5. 在“Tool Chain”页签,设置Uploader烧录器工具,可以通过Tool Chain页签中的Install按钮在线安装。 -5. 在“hh_scdy200”页签,设置烧录选项,包括upload_partitions和upload_protocol。 - - - upload_partitions:选择待烧录的文件。 - - upload_protocol:选择烧录协议,固定选择“upgrade”。 - - ![zh-cn_image_0000001194504874](figures/zh-cn_image_0000001194504874.png) + ![zh-cn_image_0000001239661509](figures/zh-cn_image_0000001239661509.png) -6. 在Partitions中,分别检查待烧录文件的烧录信息,包括起始地址、分区大小、待烧录文件地址等。DevEco Device Tool已预置默认的烧录文件信息,可根据实际情况进行调整。 +6. 在“hh_scdy200”页签,设置烧录选项,包括upload_partitions和upload_protocol。 - ![zh-cn_image_0000001265041892](figures/zh-cn_image_0000001265041892.png) + - upload_partitions_profile:选择待烧录程序的配置文件,该配置文件会指定烧录文件名称、起始烧录地址、地址长度等信息;同时请勾选**Enable to use upload_partitions_profile for upload**选项。 - 如需修改,请点击每个待烧录文件后的![zh-cn_image_0000001265361888](figures/zh-cn_image_0000001265361888.png)按钮进行修改。 + > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** + > + > 如需修改烧录profile文件,在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + > + > 首次烧录,请勾选**Enable to use upload_partitions_profile for upload**选项,会自动生成upload_partitions文件。再次烧录时,可根据实际情况选择生成upload_partitions文件进行自定义烧录,也可以再勾选**Enable to use upload_partitions_profile for upload**选项,使用upload_partitions_profile重新生成upload_partitions文件用于烧录。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 在设置烧录分区起始地址和分区长度时,应根据实际待烧录文件的大小进行设置,要求设置的烧录分区大小,要大于待烧录文件的大小;同时,各烧录文件的分区地址设置不能出现重叠。 + - upload_protocol:选择烧录协议,固定选择“upgrade”。 - ![zh-cn_image_0000001265201928](figures/zh-cn_image_0000001265201928.png) + ![zh-cn_image_0000001194504874](figures/zh-cn_image_0000001194504874.png) 7. 所有的配置都修改完成后,在工程配置页签的顶部,点击**Save**进行保存。 diff --git a/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001171796557.jpg b/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001171796557.jpg index 3e296c97b64e317bb92849d80588d5ab5419b31e..0914d258d623753a07f5de6a60d358f46019e5cc 100644 Binary files a/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001171796557.jpg and b/zh-cn/device-dev/subsystems/figures/zh-cn_image_0000001171796557.jpg differ diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md index 64fb26a19fca91c38138d46c08726a909a7fddc2..7a846893cd99a3525b9bc0eb17573aa9bd41081e 100644 --- a/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md +++ b/zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md @@ -19,66 +19,6 @@ HiSysEvent提供OpenHarmony打点接口,通过在关键路径打点记录系 ### 接口说明 -JAVA打点接口如下: - -HiSysEvent类,具体的API详见接口文档 。 - - **表1** HiSysEvent接口介绍 - -| 接口名 | 描述 | -| -------- | -------- | -| public static int write(String domain, String eventName, EventType type, Object... keyValues) | 接口功能:记录系统事件。
输入参数:
- domain:事件的相关领域,需要使用预置领域请参考Domain,可自定义领域。自定义领域长度在16个字符以内,有效的字符是0-9、A-Z,以字母开头。
- eventName:事件名,长度在32个字符以内,有效的字符是0-9、a-z、A-Z、_,以字母开头,不能以_结尾。
- type:事件类型,参考EventType。
- keyValues:事件参数键值对,支持基本的数据类型、std::string,以及std::vector<基本类型>、std:vector<std::string>。参数名长度在48个字符以内,有效的字符是0-9、a-z、A-Z、_,以字母开头,不能以_结尾。参数名的个数在32个以内。
返回值:成功返回0,错误返回小于0的值。 | -| public static int write(String domain, String eventName, EventType type, Map<String, Object> keyValues) | 接口功能:记录系统事件。
输入参数:
- domain:事件的相关领域,需要使用预置领域请参考Domain,可自定义领域。自定义领域长度在16个字符以内,有效的字符是0-9、A-Z,以字母开头。
- eventName:事件名,长度在32个字符以内,有效的字符是0-9、a-z、A-Z、_,以字母开头,不能以_结尾。
- type:事件类型,参考EventType。
- keyValues:事件参数键值对,支持基本的数据类型、std::string,以及std::vector<基本类型>、std:vector<std::string>。参数名长度在48个字符以内,有效的字符是0-9、a-z、A-Z、_,以字母开头,不能以_结尾。参数名的个数在32个以内。
返回值:成功返回0,错误返回小于0的值。 | - - **表2** HiSysEvent.Domain接口介绍 - -| 成员 | 描述 | -| -------- | -------- | -| public static final String AAFWK = "AAFWK" | 元能力子系统 | -| public static final String APPEXECFWK = "APPEXECFWK" | 用户程序框架子系统 | -| public static final String ACCOUNT = "ACCOUNT" | 账号子系统 | -| public static final String AI = "AI" | AI子系统 | -| public static final String BARRIER_FREE = "BARRIERFREE" | 无障碍软件服务子系统 | -| public static final String BIOMETRICS = "BIOMETRICS" | 生物特征识别服务子系统 | -| public static final String CCRUNTIME = "CCRUNTIME" | C/C++运行环境子系统 | -| public static final String COMMUNICATION = "COMMUNICATION" | 公共通信子系统 | -| public static final String DEVELOPTOOLS = "DEVELOPTOOLS" | 研发工具链子系统 | -| public static final String DISTRIBUTED_DATAMGR = "DISTDATAMGR" | 分布式数据管理子系统 | -| public static final String DISTRIBUTED_SCHEDULE = "DISTSCHEDULE" | 分布式任务调度子系统 | -| public static final String GLOBAL = "GLOBAL" | 全球化子系统 | -| public static final String GRAPHIC = "GRAPHIC" | 图形子系统 | -| public static final String HIVIEWDFX = "HIVIEWDFX" | DFX子系统 | -| public static final String IAWARE = "IAWARE" | 本地资源调度管控子系统 | -| public static final String INTELLI_ACCESSORIES = "INTELLIACC" | 智能配件业务子系统 | -| public static final String INTELLI_TV = "INTELLITV" | 智能电视业务子系统 | -| public static final String IVI_HARDWARE = "IVIHARDWARE" | 车机专有硬件服务子系统 | -| public static final String LOCATION = "LOCATION" | 位置服务子系统 | -| public static final String MSDP = "MSDP" | 综合传感处理平台子系统 | -| public static final String MULTI_MEDIA = "MULTIMEDIA" | 媒体子系统 | -| public static final String MULTI_MODAL_INPUT = "MULTIMODALINPUT" | 多模输入子系统 | -| public static final String NOTIFICATION = "NOTIFICATION" | 事件通知子系统 | -| public static final String POWERMGR = "POWERMGR" | 电源服务子系统 | -| public static final String ROUTER = "ROUTER" | 路由器业务子系统 | -| public static final String SECURITY = "SECURITY" | 安全子系统 | -| public static final String SENSORS = "SENSORS" | 泛Sensor服务子系统 | -| public static final String SOURCE_CODE_TRANSFORMER = "SRCTRANSFORMER" | 应用移植子系统 | -| public static final String STARTUP = "STARTUP" | 启动恢复子系统 | -| public static final String TELEPHONY = "TELEPHONY" | 电话服务子系统 | -| public static final String UPDATE = "UPDATE" | 升级服务子系统 | -| public static final String USB = "USB" | USB服务子系统 | -| public static final String WEARABLE_HARDWARE = "WEARABLEHW" | 穿戴专有硬件服务子系统 | -| public static final String WEARABLE = "WEARABLE" | 穿戴业务子系统 | -| public static final String OTHERS = "OTHERS" | 其它 | - - **表3** HiSysEvent.EventType接口介绍 - -| 接口名 | 描述 | -| -------- | -------- | -| FAULT | 故障类型事件 | -| STATISTIC | 统计类型事件 | -| SECURITY | 安全类型事件 | -| BEHAVIOR | 系统行为事件 | - C++打点接口如下: HiSysEvent类,具体的API详见接口文档 。 @@ -87,7 +27,7 @@ HiSysEvent类,具体的API详见接口文档 。 | 接口名 | 描述 | | -------- | -------- | -| template<typename... Types> static int Write(const std::string &domain, const std::string &eventName, EventType type, Types... keyValues) | 接口功能:记录系统事件。
输入参数:
- domain:事件的相关领域,需要使用预置领域请参考Domain,可自定义领域。自定义领域长度在16个字符以内,有效的字符是0-9、A-Z,以字母开头。
- eventName:事件名,长度在32个字符以内,有效的字符是0-9、A-Z、下划线,以字母开头,不能以下划线结尾。
- type:事件类型,参考EventType。
- keyValues:事件参数键值对,支持基本的数据类型、std::string,以及std::vector<基本类型>、std:vector<std::string>。参数名长度在48个字符以内,有效的字符是0-9、A-Z、下划线,以字母开头,不能以下划线结尾。参数名的个数在32个以内。
返回值:
- 0:系统事件记录成功。
- 负值:系统事件记录失败。 | +| template<typename... Types> static int Write(const std::string &domain,
 const std::string &eventName,
 EventType type, Types... keyValues) | 接口功能:记录系统事件。
输入参数:
- domain:事件的相关领域,需要使用预置领域请参考Domain,可自定义领域。自定义领域长度在16个字符以内,有效的字符是0-9、A-Z,以字母开头。
- eventName:事件名,长度在32个字符以内,有效的字符是0-9、A-Z、下划线,以字母开头,不能以下划线结尾。
- type:事件类型,参考EventType。
- keyValues:事件参数键值对,支持基本的数据类型、std::string,以及std::vector<基本类型>、std:vector<std::string>。参数名长度在48个字符以内,有效的字符是0-9、A-Z、下划线,以字母开头,不能以下划线结尾。参数名的个数在32个以内。
返回值:
- 0:系统事件记录成功。
- 负值:系统事件记录失败。 | **表5** HiSysEvent::Domain接口介绍 @@ -142,29 +82,6 @@ HiSysEvent类,具体的API详见接口文档 。 ### 开发实例 -Java接口实例 - -1. 源代码开发 - 引入类名: - - - ``` - import ohos.hiviewdfx.HiSysEvent; - ``` - - 假设业务关注应用启动时间start_app,在相关代码中使用(调用接口打点): - - - ``` - HiSysEvent.write(HiSysEvent.Domain.AAFWK, "start_app", HiSysEvent.EventType.FAULT, "app_name", "com.demo"); - ``` - -2. 编译设置,在BUILD.gn里增加子系统SDK依赖: - - ``` - external_deps = [ "hisysevent:hisysevent_java" ] - ``` - C++接口实例 1. 源代码开发 diff --git "a/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md" "b/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md" index bdae748d35ef4a3c12429882546f03e5bd5e744f..33e5add0abea9745753ab17403301d41988599b0 100755 --- "a/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md" +++ "b/zh-cn/readme/DeviceProfile\345\255\220\347\263\273\347\273\237.md" @@ -179,15 +179,13 @@ subscribeInfos.emplace_back(info2); std::list failedEvents; // 执行订阅接口 -DistributedDeviceProfileClient::GetInstance().SubscribeProfileEvents(subscribeInfos, - callback, failedEvents); +DistributedDeviceProfileClient::GetInstance().SubscribeProfileEvents(subscribeInfos, callback, failedEvents); sleep(SUBSCRIBE_SLEEP_TIME); std::list profileEvents; profileEvents.emplace_back(ProfileEvent::EVENT_PROFILE_CHANGED); failedEvents.clear(); // 解除订阅 -DistributedDeviceProfileClient::GetInstance().UnsubscribeProfileEvents(profileEvents, - callback, failedEvents); +DistributedDeviceProfileClient::GetInstance().UnsubscribeProfileEvents(profileEvents, callback, failedEvents); ``` ## 相关仓 diff --git "a/zh-cn/readme/figures/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237\351\200\273\350\276\221\346\236\266\346\236\204.png" "b/zh-cn/readme/figures/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237\351\200\273\350\276\221\346\236\266\346\236\204.png" index 138cd926b63883931bf758f2f561f6921612f8ae..db6527d7e59d7fa7b08877d425c5cbb3ee5c4630 100644 Binary files "a/zh-cn/readme/figures/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237\351\200\273\350\276\221\346\236\266\346\236\204.png" and "b/zh-cn/readme/figures/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237\351\200\273\350\276\221\346\236\266\346\236\204.png" differ diff --git "a/zh-cn/readme/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237.md" "b/zh-cn/readme/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237.md" index 55f78fafe82c8ad23568ea74f764e73ed357fe6a..f7f7393731dfdea1b4a5252b72e12ab9a6425964 100644 --- "a/zh-cn/readme/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237.md" +++ "b/zh-cn/readme/\347\224\250\346\210\267IAM\345\255\220\347\263\273\347\273\237.md" @@ -22,7 +22,7 @@ - **用户身份凭据管理:** 向上提供系统内统一的用户身份凭据信息管理接口,向下通过认证执行器管理模块,调用系统内的认证资源,完成用户身份凭据的生命周期管理和安全存储。 - **认证执行器管理:** 提供认证资源管理和认证会话管理功能,支持系统内身份认证相关**执行器**统一管理和协同调度,支持不同类型的身份认证执行器灵活对接。 -基于统一用户认证框架,系统可以扩展支持多种认证能力。OpenHarmony框架当前已经支持的**认证执行器**包含口令认证和人脸认证,持开发者如果想实现新的认证执行器,只需要在新的部件内实现认证相关功能,并且按照执行器管理模块定义的接口与统一用户认证框架对接即可。 +基于统一用户认证框架,系统可以扩展支持多种认证能力。OpenHarmony框架当前已经支持的**认证执行器**包含口令认证和人脸认证,开发者如果想实现新的认证执行器,只需要在新的部件内实现认证相关功能,并且按照执行器管理模块定义的接口与统一用户认证框架对接即可。 *注:在用户IAM子系统内,将一个用户身份认证操作的最小执行单元称为**执行器**,如一个口令认证模块,处理口令采集、口令处理和比对、口令安全存储的全过程,因此可以抽象为一个口令认证的全功能执行器。* @@ -31,34 +31,32 @@ ```undefined //base/user_iam -├── auth_executor_mgr # 认证执行器管理部件,支持系统内统一的认证资源管理和调度 +├── user_auth_framework # 用户认证框架,包括用户认证、凭据管理和执行器管理 ├── face_auth # 人脸认证部件,与认证执行器管理对接,支持人脸录入、删除和人脸认证功能 ├── pin_auth # 口令认证部件,与认证执行器管理对接,支持口令录入、删除和口令认证功能 -├── user_auth # 统一用户认证部件,提供统一用户身份认证功能 -└── user_idm # 用户身份凭据管理部件,提供系统内统一的用户身份凭据信息管理功能 ``` ## 约束 1. 用户身份凭据信息管理类操作,是系统内的关键操作,相关接口只支持系统基础应用调用。 -2. 用户身份认证执行器内真正完成用户身份认证凭据信息的处理,因此只支持系统服务实现执行器的功能,与认证执行器管理模块对接。 +2. 执行器内部真正完成用户凭据信息的处理,因此只支持系统服务实现执行器的功能,与认证执行器管理模块对接。 ## 说明 ### 使用说明 1. 统一用户认证框架必须配合一个认证执行器才可以使用。 -2. 系统内默认存在的第一个认证执行器应该是口令认证。 +2. 系统内默认存在的第一个认证执行器应该是口令执行器。 ## 相关仓 -[useriam_auth_executor_mgr](https://gitee.com/openharmony/useriam_auth_executor_mgr) +[useriam_user_auth_framework](https://gitee.com/openharmony/useriam_user_auth_framework) -[useriam_user_idm](https://gitee.com/openharmony/useriam_user_idm) +[useriam_pin_auth](https://gitee.com/openharmony/useriam_pin_auth) -[useriam_user_auth](https://gitee.com/openharmony/useriam_user_auth) +[useriam_face_auth](https://gitee.com/openharmony/useriam_face_auth) -[useriam_pin_auth](https://gitee.com/openharmony/useriam_pin_auth) +[drivers_interface](https://gitee.com/openharmony/drivers_interface) -[useriam_faceauth](https://gitee.com/openharmony/useriam_faceauth) +[drivers_peripheral](https://gitee.com/openharmony/drivers_peripheral) \ No newline at end of file diff --git a/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md b/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md index f93d7594fc6b2c4475abea7edd1703b8e51459a8..7a47c2fc202195039a512d4cfc6b7ed6e687a61f 100644 --- a/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md +++ b/zh-cn/release-notes/OpenHarmony-v3.1.1-release.md @@ -32,12 +32,13 @@ **表1** 版本软件和工具配套关系 -| 软件 | 版本 | 备注 | +| 软件 | 版本 | 备注 | | -------- | -------- | -------- | -| OpenHarmony | 3.1.1 Release | NA | -| SDK | Ohos_sdk_full 3.1.6.5 (API Version 8 Release) | NA | -| HUAWEI DevEco Studio(可选) | 3.0 Beta3 for OpenHarmony | OpenHarmony应用开发推荐使用 | -| HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用 | +| OpenHarmony | 3.1.1 Release | NA | +| Public SDK | Ohos_sdk_public 3.1.6.6 (API Version 8 Release) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。
DevEco Studio 3.0 Beta4版本起,通过DevEco Studio获取的SDK默认为Public SDK。
该版本Public SDK于7月6日单独更新发布。 | +| Full SDK | Ohos_sdk_full 3.1.6.5 (API Version 8 Release) | 面向OEM厂商提供,包含了需要使用系统权限的系统接口。
使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](../application-dev/quick-start/full-sdk-switch-guide.md)。 | +| HUAWEI DevEco Studio(可选) | 3.0 Beta3 for OpenHarmony | OpenHarmony应用开发推荐使用。 | +| HUAWEI DevEco Device Tool(可选) | 3.0 Release | OpenHarmony智能设备集成开发环境推荐使用。 | ## 源码获取 @@ -101,8 +102,10 @@ repo forall -c 'git lfs pull' | Hi3861轻量系统解决方案(二进制) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_pegasus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_pegasus.tar.gz.sha256) | | Hi3516轻量系统解决方案-LiteOS(二进制) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus.tar.gz.sha256) | | Hi3516轻量系统解决方案-Linux(二进制) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus_linux.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/hispark_taurus_linux.tar.gz.sha256) | -| 标准系统SDK包(Mac) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz.sha256) | -| 标准系统SDK包(Windows\Linux) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz.sha256) | +| 标准系统Full SDK包(Mac) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-full.tar.gz.sha256) | +| 标准系统Full SDK包(Windows\Linux) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-full.tar.gz.sha256) | +| 标准系统Public SDK包(Mac) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-public.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-mac-public.tar.gz.sha256) | +| 标准系统Public SDK包(Windows\Linux) | 3.1.1 Release | [站点](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-public.tar.gz) | [SHA256校验码](https://repo.huaweicloud.com/openharmony/os/3.1.1/ohos-sdk-public.tar.gz.sha256) | ## 更新说明 @@ -114,21 +117,22 @@ repo forall -c 'git lfs pull' **表3** 版本新增特性表 - | 子系统名称 | 标准系统 | 轻量、小型系统 | +| 子系统名称 | 标准系统 | 轻量、小型系统 | | -------- | -------- | -------- | -| 系统服务管理 | 新增添加群组校验机制。
主要涉及如下需求:
I52G5Q 添加群组校验机制 | NA | -| 电源管理 | 实现兼容亮度调节和电池信息查询API接口能力。
主要涉及如下需求:
I526UP 支持\@system.brightness亮度调节接口
I526UP 支持\@system.battery电池信息查询接口 | NA | -| 包管理 | 实现查询指定应用是否安装接口能力。
主要涉及如下需求:
I56EWD 支持对测试框架的配置
I55RZJ 查询指定应用是否安装 | NA | -| 位置服务 | 实现兼容基本定位API接口能力。
主要涉及如下需求:
I53WFP 支持基本定位能力,兼容system API | NA | -| 元能力 | 实现FA模型支持查询/设置组件横竖屏状态、组件锁屏显示和组件启动亮屏。
主要涉及如下需求:
I56EH7 FA模型支持查询/设置组件横竖屏状态
I50D5Y FA模型支持组件锁屏显示
I56EH7 FA模型支持组件启动亮屏
I55WB0 卡片数据支持携带图片
I55WB0 FA卡片能力补齐-formManager重构
I55WB0 FA卡片能力补齐-支持卡片状态查询
I55WB0 FA卡片能力补齐-支持删除无效卡片
I55WB0 FA卡片能力补齐-支持卡片可见状态与更新状态单独设置
I50D8H 支持拦截uncatchedexception
I50D91 支持ANR(Application Not Response)处理 | NA | -| 媒体 | 实现音频焦点、音频解码能力相关API接口能力。
主要涉及如下需求:
I56REO 音频部件焦点/设备接口OH补齐
I522W0 支持amr格式音频编码枚举类型 | NA | -| 窗口 | 支持对窗口属性进行设置。
主要涉及如下需求:
I56EH7 支持窗口属性设置 | NA | -| 网络管理 | 实现兼容WebSocket、fetch等API接口能力,支持以太网连接。
主要涉及如下需求:
I53CKH 支持兼容\@system.fetch
I53CJX 支持兼容\@system.network
I53CKT 支持WebSocket
I580PC 支持以太网连接 | NA | -| Misc软件服务 | 实现兼容http文件下载API接口能力。
主要涉及如下需求:
I56Q4X 支持文件下载接口 | NA | -| 事件通知 | 实现通知发送和取消的API接口能力。
主要涉及如下需求:
I50EEW 通知发送和取消功能的接口能力补齐 | NA | -| 分布式数据管理 | 实现兼容\@system.storage API接口能力。
主要涉及如下需求:
I56RF3     支持\@system.storage接口 | NA | -| 启动恢复 | 实现兼容\@system.device API接口能力。
主要涉及如下需求:
I56GBS 支持\@system.device相关API | NA | -| 应用 | 联系人支持第三方应用调用系统通话能力,提供用户基础通信能力。
主要涉及如下需求:
I58ZQ4 联系人支持第三方应用调用系统通话能力 | NA | +| SDK | SDK区分Full SDK和Public SDK进行发布。
*说明:API Version 8的Public SDK首次于7月6日单独更新发布。* | NA | +| 系统服务管理 | 新增添加群组校验机制。
主要涉及如下需求:
I52G5Q 添加群组校验机制 | NA | +| 电源管理 | 实现兼容亮度调节和电池信息查询API接口能力。
主要涉及如下需求:
I526UP 支持\@system.brightness亮度调节接口
I526UP 支持\@system.battery电池信息查询接口 | NA | +| 包管理 | 实现查询指定应用是否安装接口能力。
主要涉及如下需求:
I56EWD 支持对测试框架的配置
I55RZJ 查询指定应用是否安装 | NA | +| 位置服务 | 实现兼容基本定位API接口能力。
主要涉及如下需求:
I53WFP 支持基本定位能力,兼容system API | NA | +| 元能力 | 实现FA模型支持查询/设置组件横竖屏状态、组件锁屏显示和组件启动亮屏。
主要涉及如下需求:
I56EH7 FA模型支持查询/设置组件横竖屏状态
I50D5Y FA模型支持组件锁屏显示
I56EH7 FA模型支持组件启动亮屏
I55WB0 卡片数据支持携带图片
I55WB0 FA卡片能力补齐-formManager重构
I55WB0 FA卡片能力补齐-支持卡片状态查询
I55WB0 FA卡片能力补齐-支持删除无效卡片
I55WB0 FA卡片能力补齐-支持卡片可见状态与更新状态单独设置
I50D8H 支持拦截uncatchedexception
I50D91 支持ANR(Application Not Response)处理 | NA | +| 媒体 | 实现音频焦点、音频解码能力相关API接口能力。
主要涉及如下需求:
I56REO 音频部件焦点/设备接口OH补齐
I522W0 支持amr格式音频编码枚举类型 | NA | +| 窗口 | 支持对窗口属性进行设置。
主要涉及如下需求:
I56EH7 支持窗口属性设置 | NA | +| 网络管理 | 实现兼容WebSocket、fetch等API接口能力,支持以太网连接。
主要涉及如下需求:
I53CKH 支持兼容\@system.fetch
I53CJX 支持兼容\@system.network
I53CKT 支持WebSocket
I580PC 支持以太网连接 | NA | +| Misc软件服务 | 实现兼容http文件下载API接口能力。
主要涉及如下需求:
I56Q4X 支持文件下载接口 | NA | +| 事件通知 | 实现通知发送和取消的API接口能力。
主要涉及如下需求:
I50EEW 通知发送和取消功能的接口能力补齐 | NA | +| 分布式数据管理 | 实现兼容\@system.storage API接口能力。
主要涉及如下需求:
I56RF3     支持\@system.storage接口 | NA | +| 启动恢复 | 实现兼容\@system.device API接口能力。
主要涉及如下需求:
I56GBS 支持\@system.device相关API | NA | +| 应用 | 联系人支持第三方应用调用系统通话能力,提供用户基础通信能力。
主要涉及如下需求:
I58ZQ4 联系人支持第三方应用调用系统通话能力 | NA | ### API变更