Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
8c5eeffc
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
8c5eeffc
编写于
9月 26, 2022
作者:
S
sienna1128
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://gitee.com/openharmony/docs
上级
12839041
edd52ed2
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
297 addition
and
53 deletion
+297
-53
zh-cn/application-dev/faqs/faqs-connectivity.md
zh-cn/application-dev/faqs/faqs-connectivity.md
+1
-1
zh-cn/application-dev/napi/Readme-CN.md
zh-cn/application-dev/napi/Readme-CN.md
+1
-0
zh-cn/application-dev/napi/figures/01.png
zh-cn/application-dev/napi/figures/01.png
+0
-0
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
+216
-0
zh-cn/application-dev/reference/apis/js-apis-http.md
zh-cn/application-dev/reference/apis/js-apis-http.md
+2
-2
zh-cn/application-dev/reference/apis/js-apis-intl.md
zh-cn/application-dev/reference/apis/js-apis-intl.md
+10
-10
zh-cn/application-dev/reference/apis/js-apis-screenshot.md
zh-cn/application-dev/reference/apis/js-apis-screenshot.md
+31
-2
zh-cn/application-dev/reference/apis/js-apis-socket.md
zh-cn/application-dev/reference/apis/js-apis-socket.md
+3
-3
zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-size.md
...on-dev/reference/arkui-ts/ts-universal-attributes-size.md
+1
-1
zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md
.../reference/arkui-ts/ts-universal-attributes-text-style.md
+1
-1
zh-cn/application-dev/security/hapsigntool-guidelines.md
zh-cn/application-dev/security/hapsigntool-guidelines.md
+3
-3
zh-cn/application-dev/ui/ui-ts-components.md
zh-cn/application-dev/ui/ui-ts-components.md
+4
-3
zh-cn/release-notes/OpenHarmony-v3.2-beta1.md
zh-cn/release-notes/OpenHarmony-v3.2-beta1.md
+24
-27
未找到文件。
zh-cn/application-dev/faqs/faqs-connectivity.md
浏览文件 @
8c5eeffc
...
...
@@ -18,7 +18,7 @@ extraData代表发送请求的额外数据,支持如下数据:
适用于:OpenHarmony SDK 3.2.2.5版本,API9 Stage模型
错误码28代表CURLE_OPERATION_TIMEDOUT
。网络请求底层使用libcurl库,更多错误码可以查看相应文档。
错误码28代表CURLE_OPERATION_TIMEDOUT
,操作超时
。网络请求底层使用libcurl库,更多错误码可以查看相应文档。
参考文档:
[
开发指南
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-http.md#response%E5%B8%B8%E7%94%A8%E9%94%99%E8%AF%AF%E7%A0%81
)
和
[
Curl错误码
](
https://curl.se/libcurl/c/libcurl-errors.html
)
...
...
zh-cn/application-dev/napi/Readme-CN.md
浏览文件 @
8c5eeffc
...
...
@@ -4,3 +4,4 @@
-
[
Drawing开发指导
](
drawing-guidelines.md
)
-
[
Rawfile开发指导
](
rawfile-guidelines.md
)
-
[
Window开发指导
](
native-window-guidelines.md
)
-
[
使用MindSpore Lite引擎进行模型推理
](
mindspore-lite-guidelines.md
)
zh-cn/application-dev/napi/figures/01.png
0 → 100644
浏览文件 @
8c5eeffc
1.0 MB
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
0 → 100644
浏览文件 @
8c5eeffc
# 使用MindSpore Lite引擎进行模型推理
## 场景介绍
MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型推理的功能,目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。
本文介绍使用MindSpore Lite推理引擎进行模型推理的通用开发流程。
## 基本概念
在进行开发前,请先了解以下概念。
**张量**
:它与数组和矩阵非常相似,是MindSpore Lite网络运算中的基本数据结构。
**Float16推理模式**
: Float16又称半精度,它使用16比特表示一个数。Float16推理模式表示推理的时候用半精度进行推理。
## 接口说明
这里给出MindSpore Lite推理的通用开发流程中涉及的一些接口,具体请见下列表格。
### Context 相关接口
| 接口名称 | 描述 |
| ------------------ | ----------------- |
|OH_AI_ContextHandle OH_AI_ContextCreate()|创建一个上下文的对象。|
|void OH_AI_ContextSetThreadNum(OH_AI_ContextHandle context, int32_t thread_num)|设置运行时的线程数量。|
| void OH_AI_ContextSetThreadAffinityMode(OH_AI_ContextHandle context, int mode)|设置运行时线程绑定CPU核心的策略。一般情况下CPU会按照频率分为大小核,即频率较高的为大核,频率较低的为小核。|
|OH_AI_DeviceInfoHandle OH_AI_DeviceInfoCreate(OH_AI_DeviceType device_type)|创建一个运行时设备信息对象。|
|void OH_AI_ContextDestroy(OH_AI_ContextHandle
*
context)|释放上下文对象。|
|void OH_AI_DeviceInfoSetEnableFP16(OH_AI_DeviceInfoHandle device_info, bool is_fp16)|设置是否开启Float16推理模式,仅CPU/GPU设备可用。|
|void OH_AI_ContextAddDeviceInfo(OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info)|添加运行时设备信息。|
### Model 相关接口
| 接口名称 | 描述 |
| ------------------ | ----------------- |
|OH_AI_ModelHandle OH_AI_ModelCreate()|创建一个模型对象。|
|OH_AI_Status OH_AI_ModelBuildFromFile(OH_AI_ModelHandle model, const char
*
model_path,OH_AI_ModelType odel_type, const OH_AI_ContextHandle model_context)|通过模型文件加载并编译MindSpore模型。|
|void OH_AI_ModelDestroy(OH_AI_ModelHandle
*
model)|释放一个模型对象。|
### Tensor 相关接口
| 接口名称 | 描述 |
| ------------------ | ----------------- |
|OH_AI_TensorHandleArray OH_AI_ModelGetInputs(const OH_AI_ModelHandle model)|获取模型的输入张量数组结构体。|
|int64_t OH_AI_TensorGetElementNum(const OH_AI_TensorHandle tensor)|获取张量元素数量。|
|const char
*
OH_AI_TensorGetName(const OH_AI_TensorHandle tensor)|获取张量的名称。|
|OH_AI_DataType OH_AI_TensorGetDataType(const OH_AI_TensorHandle tensor)|获取张量数据类型。|
|void
*
OH_AI_TensorGetMutableData(const OH_AI_TensorHandle tensor)|获取可变的张量数据指针。|
## 开发步骤
使用MindSpore Lite进行模型推理的开发流程如下图所示。
**图 1**
使用MindSpore Lite进行模型推理的开发流程

主要开发步骤包括模型的准备、读取、编译、推理和释放,具体开发过程及细节请见下文的开发步骤及示例。
1.
模型准备。
需要的模型可以直接下载,也可以通过模型转换工具获得。
-
下载模型的格式若为
`.ms`
,则可以直接使用。本文以mobilenetv2.ms为例。
-
如果是第三方框架的模型,比如 TensorFlow、TensorFlow Lite、Caffe、ONNX等,需要使用
[
模型转换工具
](
https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/benchmark_tool.html
)
转换为
`.ms`
格式的模型文件。
2.
创建上下文,设置线程数、设备类型等参数。
```
c
// 创建并配置上下文,设置运行时的线程数量为2,绑核策略为大核优先
OH_AI_ContextHandle
context
=
OH_AI_ContextCreate
();
if
(
context
==
NULL
)
{
printf
(
"OH_AI_ContextCreate failed.
\n
"
);
return
OH_AI_STATUS_LITE_ERROR
;
}
const
int
thread_num
=
2
;
OH_AI_ContextSetThreadNum
(
context
,
thread_num
);
OH_AI_ContextSetThreadAffinityMode
(
context
,
1
);
//设置运行设备为CPU,不使用Float16推理
OH_AI_DeviceInfoHandle
cpu_device_info
=
OH_AI_DeviceInfoCreate
(
OH_AI_DEVICETYPE_CPU
);
if
(
cpu_device_info
==
NULL
)
{
printf
(
"OH_AI_DeviceInfoCreate failed.
\n
"
);
OH_AI_ContextDestroy
(
&
context
);
return
OH_AI_STATUS_LITE_ERROR
;
}
OH_AI_DeviceInfoSetEnableFP16
(
cpu_device_info
,
false
);
OH_AI_ContextAddDeviceInfo
(
context
,
cpu_device_info
);
```
3.
创建、加载与编译模型。
调用OH_AI_ModelBuildFromFile加载并编译模型。
本例中传入OH_AI_ModelBuildFromFile的argv[1]参数是从控制台中输入的模型文件路径。
```c
// 创建模型
OH_AI_ModelHandle model = OH_AI_ModelCreate();
if (model == NULL) {
printf("OH_AI_ModelCreate failed.\n");
OH_AI_ContextDestroy(&context);
return OH_AI_STATUS_LITE_ERROR;
}
// 加载与编译模型,模型的类型为OH_AI_ModelTypeMindIR
int ret = OH_AI_ModelBuildFromFile(model, argv[1], OH_AI_ModelTypeMindIR, context);
if (ret != OH_AI_STATUS_SUCCESS) {
printf("OH_AI_ModelBuildFromFile failed, ret: %d.\n", ret);
OH_AI_ModelDestroy(&model);
return ret;
}
```
4.
输入数据。
模型执行之前需要向输入的张量中填充数据。本例使用随机的数据对模型进行填充。
```c
// 获得输入张量
OH_AI_TensorHandleArray inputs = OH_AI_ModelGetInputs(model);
if (inputs.handle_list == NULL) {
printf("OH_AI_ModelGetInputs failed, ret: %d.\n", ret);
OH_AI_ModelDestroy(&model);
return ret;
}
// 使用随机数据填充张量
ret = GenerateInputDataWithRandom(inputs);
if (ret != OH_AI_STATUS_SUCCESS) {
printf("GenerateInputDataWithRandom failed, ret: %d.\n", ret);
OH_AI_ModelDestroy(&model);
return ret;
}
```
5. 执行推理。
使用OH_AI_ModelPredict接口进行模型推理。
```
c
// 执行模型推理
OH_AI_TensorHandleArray outputs;
ret = OH_AI_ModelPredict(model, inputs, &outputs, NULL, NULL);
if (ret != OH_AI_STATUS_SUCCESS) {
printf("OH_AI_ModelPredict failed, ret: %d.
\n
", ret);
OH_AI_ModelDestroy(
&model);
return ret;
}
```
6. 获取输出。
模型推理结束之后,可以通过输出张量得到推理结果。
```
c
// 获取模型的输出张量,并打印
for (size_t i = 0; i < outputs.handle_num; ++i) {
OH_AI_TensorHandle tensor = outputs.handle_list[i];
int64_t element_num = OH_AI_TensorGetElementNum(tensor);
printf("Tensor name: %s, tensor size is %zu ,elements num: %lld.
\n
", OH_AI_TensorGetName(tensor),
OH_AI_TensorGetDataSize(tensor), element_num);
const float
*data = (const float *
)OH_AI_TensorGetData(tensor);
printf("output data is:
\n
");
const int max_print_num = 50;
for (int j = 0; j < element_num && j <= max_print_num; ++j) {
printf("%f ", data[j]);
}
printf("
\n
");
}
```
7. 释放模型。
不再使用MindSpore Lite推理框架时,需要释放已经创建的模型。
```
c
// 释放模型
OH_AI_ModelDestroy(
&model);
```
## 调测验证
1. 编写CMakeLists.txt。
```
cmake
cmake_minimum_required(VERSION 3.14)
project(Demo)
add_executable(demo main.c)
target_link_libraries(
demo
mindspore-lite.huawei
pthread
dl
)
```
-
使用ohos-sdk交叉编译,需要对CMake设置native工具链路径,即:
`-DCMAKE_TOOLCHAIN_FILE="/xxx/ohos-sdk/linux/native/build/cmake/ohos.toolchain.camke"`
。
-
工具链默认编译64位的程序,如果要编译32位,需要添加:
`-DOHOS_ARCH="armeabi-v7a"`
。
2.
运行。
- 使用hdc_std连接rk3568开发板,并将demo和mobilenetv2.ms推送到设备中的相同目录。
- 使用hdc_std shell进入开发板,并进入demo所在的目录执行如下命令,即可得到结果。
```shell
./demo mobilenetv2.ms
```
得到如下输出:
```shell
# ./QuickStart ./mobilenetv2.ms
Tensor name: Softmax-65, tensor size is 4004 ,elements num: 1001.
output data is:
0.000018 0.000012 0.000026 0.000194 0.000156 0.001501 0.000240 0.000825 0.000016 0.000006 0.000007 0.000004 0.000004 0.000004 0.000015 0.000099 0.000011 0.000013 0.000005 0.000023 0.000004 0.000008 0.000003 0.000003 0.000008 0.000014 0.000012 0.000006 0.000019 0.000006 0.000018 0.000024 0.000010 0.000002 0.000028 0.000372 0.000010 0.000017 0.000008 0.000004 0.000007 0.000010 0.000007 0.000012 0.000005 0.000015 0.000007 0.000040 0.000004 0.000085 0.000023
```
zh-cn/application-dev/reference/apis/js-apis-http.md
浏览文件 @
8c5eeffc
...
...
@@ -358,7 +358,7 @@ httpRequest.once('headersReceive', (header) => {
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
| method |
[
RequestMethod
](
#requestmethod
)
| 否 | 请求方式。 |
| extraData | string
\|
Object
\|
ArrayBuffer
<sup>
8+
</sup>
| 否 | 发送请求的额外数据。
<br
/>
- 当HTTP请求为POST、PUT等方法时,此字段为HTTP请求的content。
<br
/>
- 当HTTP请求为GET、OPTIONS、DELETE、TRACE、CONNECT等方法时,此字段为HTTP请求的参数补充,参数内容会拼接到URL中进行发送。
<sup>
8+
</sup><br
/>
- 开发者传入string对象,开发者需要自行编码,将编码后的string传入。
<sup>
8
+
</sup>
|
| extraData | string
\|
Object
\|
ArrayBuffer
<sup>
6+
</sup>
| 否 | 发送请求的额外数据。
<br
/>
- 当HTTP请求为POST、PUT等方法时,此字段为HTTP请求的content。
<br
/>
- 当HTTP请求为GET、OPTIONS、DELETE、TRACE、CONNECT等方法时,此字段为HTTP请求的参数补充,参数内容会拼接到URL中进行发送。
<sup>
6+
</sup><br
/>
- 开发者传入string对象,开发者需要自行编码,将编码后的string传入。
<sup>
6
+
</sup>
|
| header | Object | 否 | HTTP请求头字段。默认{'Content-Type': 'application/json'}。 |
| readTimeout | number | 否 | 读取超时时间。单位为毫秒(ms),默认为60000ms。 |
| connectTimeout | number | 否 | 连接超时时间。单位为毫秒(ms),默认为60000ms。 |
...
...
@@ -432,7 +432,7 @@ request方法回调函数的返回值类型。
| 参数名 | 类型 | 必填 | 说明 |
| -------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| result | string
\|
Object
\|
ArrayBuffer
<sup>
8
+
</sup>
| 是 | HTTP请求根据响应头中Content-type类型返回对应的响应格式内容:
<br
/>
- application/json:返回JSON格式的字符串,如需HTTP响应具体内容,需开发者自行解析
<br
/>
- application/octet-stream:ArrayBuffer
<br
/>
- 其他:string |
| result | string
\|
Object
\|
ArrayBuffer
<sup>
6
+
</sup>
| 是 | HTTP请求根据响应头中Content-type类型返回对应的响应格式内容:
<br
/>
- application/json:返回JSON格式的字符串,如需HTTP响应具体内容,需开发者自行解析
<br
/>
- application/octet-stream:ArrayBuffer
<br
/>
- 其他:string |
| responseCode |
[
ResponseCode
](
#responsecode
)
\|
number | 是 | 回调函数执行成功时,此字段为
[
ResponseCode
](
#responsecode
)
。若执行失败,错误码将会从AsyncCallback中的err字段返回。错误码参考
[
Response错误码
](
#response常用错误码
)
。 |
| header | Object | 是 | 发起HTTP请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:
<br/>
- Content-Type:header['Content-Type'];
<br
/>
- Status-Line:header['Status-Line'];
<br
/>
- Date:header.Date/header['Date'];
<br
/>
- Server:header.Server/header['Server']; |
| cookies
<sup>
8+
</sup>
| Array
\<
string
\>
| 是 | 服务器返回的 cookies。 |
...
...
zh-cn/application-dev/reference/apis/js-apis-intl.md
浏览文件 @
8c5eeffc
...
...
@@ -64,7 +64,7 @@ constructor(locale: string, options?: LocaleOptions)
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------- | ---- | ---------------------------- |
| locale | string | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
| options
| LocaleOptions
| 否 | 用于创建区域对象的选项。 |
| options
<sup>
9+
</sup>
|
[
LocaleOptions
](
#localeoptions9
)
| 否 | 用于创建区域对象的选项。 |
**示例:**
```
js
...
...
@@ -181,7 +181,7 @@ constructor(locale: string | Array<string>, options?: DateTimeOptions)
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------------------------------- | ---- | ---------------------------- |
| locale | string
\|
Array
<
string
>
| 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
| options
|
[
DateTimeOptions
](
#datetimeoptions
)
| 否 | 用于创建时间日期格式化的选项。 |
| options
<sup>
9+
</sup>
|
[
DateTimeOptions
](
#datetimeoptions9
)
| 否 | 用于创建时间日期格式化的选项。 |
**示例:**
```
js
...
...
@@ -265,7 +265,7 @@ resolvedOptions(): DateTimeOptions
| 类型 | 说明 |
| ----------------------------------- | ----------------------------- |
|
[
DateTimeOptions
](
#datetimeoptions
)
| DateTimeFormat
对象的格式化选项。 |
|
[
DateTimeOptions
](
#datetimeoptions
9
)
| DateTimeFormat
对象的格式化选项。 |
**示例:**
```
js
...
...
@@ -333,7 +333,7 @@ constructor(locale: string | Array<string>, options?: NumberOptions)
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------- | ---- | ---------------------------- |
| locale | string
\|
Array
<
string
>
| 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
| options
|
[
NumberOptions
](
#numberoptions
)
| 否 | 用于创建数字格式化的选项。 |
| options
<sup>
9+
</sup>
|
[
NumberOptions
](
#numberoptions9
)
| 否 | 用于创建数字格式化的选项。 |
**示例:**
```
js
...
...
@@ -381,7 +381,7 @@ resolvedOptions(): NumberOptions
| 类型 | 说明 |
| ------------------------------- | --------------------------- |
|
[
NumberOptions
](
#numberoptions
)
| NumberFormat
对象的格式化选项。 |
|
[
NumberOptions
](
#numberoptions
9
)
| NumberFormat
对象的格式化选项。 |
**示例:**
...
...
@@ -450,7 +450,7 @@ constructor(locale: string | Array<string>, options?: CollatorOptions)
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------------------------------- | ---- | ---------------------------- |
| locale | string
\|
Array
<
string
>
| 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
| options
|
[
CollatorOptions
](
#collatoroptions
)
| 否 | 用于创建排序对象的选项。 |
| options
<sup>
9+
</sup>
|
[
CollatorOptions
](
#collatoroptions9
)
| 否 | 用于创建排序对象的选项。 |
**示例:**
```
js
...
...
@@ -498,7 +498,7 @@ resolvedOptions(): CollatorOptions
| 类型 | 说明 |
| ----------------------------------- | ----------------- |
|
[
CollatorOptions
](
#collatoroptions
)
| 返回的Collator对象的属性。 |
|
[
CollatorOptions
](
#collatoroptions
9
)
| 返回的Collator对象的属性。 |
**示例:**
```
js
...
...
@@ -554,7 +554,7 @@ constructor(locale: string | Array<string>, options?: PluralRulesOptions)
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------- | ---- | ---------------------------- |
| locale | string
\|
Array
<
string
>
| 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
| options
|
[
PluralRulesOptions
](
#pluralrulesoptions
)
| 否 | 用于创建单复数对象的选项。 |
| options
<sup>
9+
</sup>
|
[
PluralRulesOptions
](
#pluralrulesoptions9
)
| 否 | 用于创建单复数对象的选项。 |
**示例:**
```
js
...
...
@@ -636,7 +636,7 @@ constructor(locale: string | Array<string>, options?: RelativeTimeFormatIn
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------- | ---- | ---------------------------- |
| locale | string
\|
Array
<
string
>
| 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
| options
|
[
RelativeTimeFormatInputOptions
](
#relativetimeformatinputoptions
)
| 否 | 用于创建相对时间格式化对象的选项。 |
| options
<sup>
9+
</sup>
|
[
RelativeTimeFormatInputOptions
](
#relativetimeformatinputoptions9
)
| 否 | 用于创建相对时间格式化对象的选项。 |
**示例:**
```
js
...
...
@@ -712,7 +712,7 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
| 类型 | 说明 |
| ---------------------------------------- | --------------------------------- |
|
[
RelativeTimeFormatResolvedOptions
](
#relativetimeformatresolvedoptions
)
| RelativeTimeFormat
对象的格式化选项。 |
|
[
RelativeTimeFormatResolvedOptions
](
#relativetimeformatresolvedoptions
8
)
| RelativeTimeFormat
对象的格式化选项。 |
**示例:**
```
js
...
...
zh-cn/application-dev/reference/apis/js-apis-screenshot.md
浏览文件 @
8c5eeffc
...
...
@@ -55,7 +55,7 @@ import screenshot from '@ohos.screenshot';
## screenshot.save
save(options
?
: ScreenshotOptions, callback: AsyncCallback
<
image.PixelMap
>
): void
save(options: ScreenshotOptions, callback: AsyncCallback
<
image.PixelMap
>
): void
获取屏幕截图。
...
...
@@ -67,7 +67,7 @@ save(options?: ScreenshotOptions, callback: AsyncCallback<image.PixelMap>)
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| options |
[
ScreenshotOptions
](
#screenshotoptions
)
|
否 | 该类型的参数包含screenRect,imageSize,rotation,
displayId四个参数,可以分别设置这四个参数。 |
| options |
[
ScreenshotOptions
](
#screenshotoptions
)
|
是 | 该类型的参数包含screenRect、imageSize、rotation、
displayId四个参数,可以分别设置这四个参数。 |
| callback | AsyncCallback
<
[image.PixelMap](js-apis-image.md#pixelmap7)
>
| 是 | 回调函数。返回一个PixelMap对象。 |
**示例:**
...
...
@@ -97,6 +97,35 @@ save(options?: ScreenshotOptions, callback: AsyncCallback<image.PixelMap>)
## screenshot.save
save(callback: AsyncCallback
<
image.PixelMap
>
): void
获取屏幕截图。
**系统能力:**
SystemCapability.WindowManager.WindowManager.Core
**需要权限**
:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback
<
[image.PixelMap](js-apis-image.md#pixelmap7)
>
| 是 | 回调函数。返回一个PixelMap对象。 |
**示例:**
```
js
screenshot
.
save
((
err
,
pixelMap
)
=>
{
if
(
err
)
{
console
.
log
(
'
Failed to save screenshot:
'
+
JSON
.
stringify
(
err
));
return
;
}
console
.
log
(
'
Succeeded in saving sreenshot. Pixel bytes number:
'
+
pixelMap
.
getPixelBytesNumber
());
pixelMap
.
release
();
// PixelMap使用完后及时释放内存
});
```
## screenshot.save
save(options?: ScreenshotOptions): Promise
<
image.PixelMap
>
获取屏幕截图。
...
...
zh-cn/application-dev/reference/apis/js-apis-socket.md
浏览文件 @
8c5eeffc
...
...
@@ -316,7 +316,7 @@ udp.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => {
return
;
}
console
.
log
(
'
bind success
'
);
let
promise
=
udp
.
getState
(
{}
);
let
promise
=
udp
.
getState
();
promise
.
then
(
data
=>
{
console
.
log
(
'
getState success:
'
+
JSON
.
stringify
(
data
));
}).
catch
(
err
=>
{
...
...
@@ -626,7 +626,7 @@ UDPSocket发送参数。
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------- | ---- | -------------- |
| data | string
\|
ArrayBuffer
<sup>
8
+
</sup>
| 是 | 发送的数据。 |
| data | string
\|
ArrayBuffer
<sup>
7
+
</sup>
| 是 | 发送的数据。 |
| address |
[
NetAddress
](
#netaddress
)
| 是 | 目标地址信息。 |
## UDPExtraOptions
...
...
@@ -1434,7 +1434,7 @@ TCPSocket发送请求的参数。
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| data | string
\|
ArrayBuffer
<sup>
8
+
</sup>
| 是 | 发送的数据。 |
| data | string
\|
ArrayBuffer
<sup>
7
+
</sup>
| 是 | 发送的数据。 |
| encoding | string | 否 | 字符编码(UTF-8,UTF-16BE,UTF-16LE,UTF-16,US-AECII,ISO-8859-1),默认为UTF-8。 |
## TCPExtraOptions
...
...
zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-size.md
浏览文件 @
8c5eeffc
...
...
@@ -16,7 +16,7 @@
| height |
[
Length
](
ts-types.md#length
)
| 设置组件自身的高度,缺省时使用元素自身内容需要的高度。若子组件的高大于父组件的高,则会画出父组件的范围。 |
| size | {
<br/>
width?:
[Length](ts-types.md#length),
<br/>
height?:
[
Length
](
ts-types.md#length
)
<br/>
} | 设置高宽尺寸。 |
| padding |
[
Padding
](
ts-types.md#padding
)
\|
[
Length
](
ts-types.md#length
)
| 设置内边距属性。
<br/>
参数为Length类型时,四个方向内边距同时生效。
<br>
默认值:0
<br>
padding设置百分比时,上下左右内边距均以父容器的width作为基础值。 |
| margin |
[
Margin
](
ts-types.md#margin
)
)
\|
[
Length
](
ts-types.md#length
)
| 设置外边距属性。
<br/>
参数为Length类型时,四个方向外边距同时生效。
<br>
默认值:0
<br>
margin设置百分比时,上下左右
内
边距均以父容器的width作为基础值。|
| margin |
[
Margin
](
ts-types.md#margin
)
)
\|
[
Length
](
ts-types.md#length
)
| 设置外边距属性。
<br/>
参数为Length类型时,四个方向外边距同时生效。
<br>
默认值:0
<br>
margin设置百分比时,上下左右
外
边距均以父容器的width作为基础值。|
| constraintSize | {
<br/>
minWidth?:
[Length](ts-types.md#length),
<br/>
maxWidth?:
[Length](ts-types.md#length),
<br/>
minHeight?:
[Length](ts-types.md#length),
<br/>
maxHeight?:
[
Length
](
ts-types.md#length
)
<br/>
} | 设置约束尺寸,组件布局时,进行尺寸范围限制。constraintSize的优先级高于Width和Height。
<br>
默认值:
<br>
{
<br/>
minWidth:
0,
<br/>
maxWidth:
Infinity,
<br/>
minHeight:
0,
<br/>
maxHeight:
Infinity
<br/>
} |
| layoutWeight | number
\|
string | 容器尺寸确定时,元素与兄弟节点主轴布局尺寸按照权重进行分配,忽略本身尺寸设置,表示自适应占满剩余空间。
<br>
**说明:**
<br/>
仅在Row/Column/Flex布局中生效。
<br>
默认值:0 |
...
...
zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-text-style.md
浏览文件 @
8c5eeffc
...
...
@@ -15,7 +15,7 @@
| fontColor |
[
ResourceColor
](
ts-types.md#resourcecolor
)
| 设置文本颜色。 |
| fontSize | Length
\|
[
Resource
](
ts-types.md#resource
)
| 设置文本尺寸,Length为number类型时,使用fp单位。 |
| fontStyle |
[
FontStyle
](
ts-appendix-enums.md#fontstyle
)
| 设置文本的字体样式。
<br>
默认值:FontStyle.Normal |
| fontWeight | number
\|
[FontWeight](ts-appendix-enums.md#fontweight)
\|
string | 设置文本的字体粗细,number类型取值[100,
900],取值间隔为100,默认为400,取值越大,字体越粗。
<br/>
默认值:FontWeight.Normal |
| fontWeight | number
\|
[FontWeight](ts-appendix-enums.md#fontweight)
\|
string | 设置文本的字体粗细,number类型取值[100,
900],取值间隔为100,默认为400,取值越大,字体越粗。
string类型仅支持number类型取值的字符串形式,例如"400",以及"bold"、"bolder"、"lighter"、"regular"、"medium",分别对应FontWeight中相应的枚举值。
<br/>
默认值:FontWeight.Normal |
| fontFamily | string
\|
[
Resource
](
ts-types.md#resource
)
| 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效。例如:'Arial,
sans-serif'。 |
...
...
zh-cn/application-dev/security/hapsigntool-guidelines.md
浏览文件 @
8c5eeffc
...
...
@@ -391,12 +391,12 @@ OpenHarmony系统内置密钥库文件,文件名称为OpenHarmony.p12,内含
-
**现象描述**
执行命令后提示:`NOT_SUPPORT_ERROR, code: 105. Details: SignAlg params is incorrect, signature algorithms include SHA256withECDSA,SHA384withECDSA`
执行命令后提示:`NOT_SUPPORT_ERROR, code: 105. Details: SignAlg params is incorrect, signature algorithms include SHA256withECDSA,SHA384withECDSA`
。
-
**可能原因**
签名算法不支持,signAlg参数填写错误
签名算法不支持,signAlg参数填写错误
。
-
**解决办法**
最终实体证书密钥对推荐使用ECC生成,hap签名算法修改为ECC对应的SHA256withECDSA,SHA384withECDSA
最终实体证书密钥对推荐使用ECC生成,hap签名算法修改为ECC对应的SHA256withECDSA,SHA384withECDSA
。
zh-cn/application-dev/ui/ui-ts-components.md
浏览文件 @
8c5eeffc
...
...
@@ -33,9 +33,10 @@ interface Builder {
开发者创建系统组件时,会显示其默认样式。开发者可以通过更改组件的属性样式来改变组件的视图显示。
1.
修改Text组件的fontSize属性来更改组件的字体大小,将字体大小设置为26,fontWeight字体的粗细为500。fontWeight支持两种设置方式:
1.
number类型的取值范围为100到900,默认为400,取值越大,字体越粗。
2.
fontWeight为内置枚举类型,取值支持Lighter、Normal、Bold、Bolder。
1.
修改Text组件的fontSize属性来更改组件的字体大小,将字体大小设置为26,通过fontWeight属性更改字体粗细,将其设置为500。fontWeight属性支持三种设置方式:
1.
number类型的取值范围为100到900,取值间隔为100,默认为400,取值越大,字体越粗。
2.
FontWeight为内置枚举类型,取值支持FontWeight.Lighter、FontWeight.Normal、FontWeight.Regular、FontWeight.Medium、FontWeight.Bold、FontWeight.Bolder。FontWeight.Normal即为400数值的字体粗细。
3.
string类型仅支持number类型取值的字符串形式,例如"400",以及"bold"、"bolder"、"lighter"、"regular"、"medium",分别对应FontWeight中相应的枚举值。设置其他字符串则为无效,保持默认字体粗细显示。
属性方法要紧随组件,通过“.”运算符连接,也可以通过链式调用的方式配置组件的多个属性。
...
...
zh-cn/release-notes/OpenHarmony-v3.2-beta1.md
浏览文件 @
8c5eeffc
...
...
@@ -186,31 +186,29 @@ _[API差异报告](api-change/v3.2-beta1/readme.md)_
| 子系统 | 名称 | 简介 | 开发语言 |
| -------- | -------- | -------- | -------- |
| ArkUI | MouseEvent | 本示例模拟了简单的扫雷游戏调用了鼠标事件的相关接口 | eTS |
| ArkUI | Vibrator | 本示例模拟倒计时场景,展示振动接口的使用方法。 | eTS |
| DFX | FaultLogger | 本示例展示了在eTS中如何获取应用故障相关信息。 | eTS |
| ArkUI | Gallery | 本Demo通过不同示例向用户介绍通用事件、通用属性、手势处理等不同组件的功能。 | eTS |
| 图形 | JsWebGL | 本示例调用GPU资源绘制了五角星和矩形,展示WebGL相关接口的使用方法。 | JS |
| ArkUI | Clock | 本示例使用eTS
UI能力实现一个简单的时钟应用。 | eTS |
| 网络管理 | Http | 本示例仿postman输入API接口地址,获取相应数据,介绍数据请求接口的用法。 | eTS |
| ArkUI | FlishLight | 本示例通过屏幕的亮度变化来模拟手电筒功能,屏幕变亮模拟手电筒打开,屏幕变暗模拟手电筒关闭。 | eTS |
| 网络管理 | Socket | 本示例主要演示了Socket在网络通信方面的应用,展示了Socket在两端设备的连接验证、聊天通信方面的应用。 | eTS |
| 分布式数据管理 | DistributedRdb | 本示例展示了在eTS中分布式关系型数据库的使用,在增、删、改、查的基本操作外,还包括分布式数据库的数据同步能力。 | eTS |
| 元能力 | BackgroundTaskManager | 本示例模拟下载功能,将下载任务通过后台任务管理进行处理,实现退出应用后任务仍能够执行,直至任务结束。 | eTS |
| 元能力 | BringApp | 本示例使用FeatureAbility接口,通过应用的包名与Ability名,拉起系统应用。 | eTS |
| 媒体 | VideoPlayer | 本示例展示了在eTS中VideoPlayer如何播放视频,同时提供一个可供其他应用调用播放视频的Ability。 | eTS |
| 元能力 | DistributeCalc | 本示例使用JS分布式能力实现了一个简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一个计算器FA,两个FA进行协同计算。 | eTS |
| 媒体 | JSRecorder | 本示例通过调用媒体相关接口来实现音频录制和播放的功能。 | eTS |
| Web | Browser | 本示例运用OpenHarmony系统提供的Stage模型与相关接口展示了一个简易的浏览器。 | eTS |
| 元能力 | DeviceUsageStatistics | 本示例主要展示了设备使用信息情况。 | eTS |
| ArkUI | AdaptiveCapabilities | 本示例展示在eTS中的多设备自适应能力,包括资源限定词、原子布局和响应式布局。 | eTS |
| ArkUI | Game2048 | 2048是一款比较流行的数字游戏,此游戏demo是grid组件基础上进行开发完成的。 | eTS |
| 窗口 | Window | 本示例展示了创建新窗口,将应用悬浮在其他界面,及应用分屏等功能 | eTS |
| 分布式数据管理 | Preference | 本示例主要展示了首选项在主题切换方面的功能。 | eTS |
| ArkUI | NativeAPI | 本示例展示了在eTS中如何调用C++的接口以及C++如何回调JS,完成了一个简单的五子棋游戏,在native层完成计算逻辑,eTS完成界面绘制和刷新。 | eTS/C++ |
| 全球化 | International | 本示例展示了i18n,intl,resourceManager在eTS中的使用,使用相关api实现系统语言和地区设置、时间和时区设置,展示了区域格式化示例。 | eTS |
请访问
[
Samples
](
https://gitee.com/openharmony/app_samples
)
仓了解更多信息。
| ArkUI |
[
MouseEvent
](
https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/MouseEvent
)
| 本示例模拟了简单的扫雷游戏调用了鼠标事件的相关接口 | eTS |
| ArkUI |
[
Vibrator
](
https://gitee.com/openharmony/applications_app_samples/tree/master/device/Vibrator
)
| 本示例模拟倒计时场景,展示振动接口的使用方法。 | eTS |
| DFX |
[
FaultLogger
](
https://gitee.com/openharmony/applications_app_samples/tree/master/DFX/FaultLogger
)
| 本示例展示了在eTS中如何获取应用故障相关信息。 | eTS |
| ArkUI |
[
Gallery
](
https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/Gallery
)
| 本Demo通过不同示例向用户介绍通用事件、通用属性、手势处理等不同组件的功能。 | eTS |
| 图形 |
[
JsWebGL
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/JsWebGL
)
| 本示例调用GPU资源绘制了五角星和矩形,展示WebGL相关接口的使用方法。 | JS |
| ArkUI |
[
Clock
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Preset/Clock
)
| 本示例使用eTS
UI能力实现一个简单的时钟应用。 | eTS |
| 网络管理 |
[
Http
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Network/Http
)
| 本示例仿postman输入API接口地址,获取相应数据,介绍数据请求接口的用法。 | eTS |
| 网络管理 |
[
Socket
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Network/Socket
)
| 本示例主要演示了Socket在网络通信方面的应用,展示了Socket在两端设备的连接验证、聊天通信方面的应用。 | eTS |
| 分布式数据管理 |
[
DistributedRdb
](
https://gitee.com/openharmony/applications_app_samples/tree/master/data/DistributedRdb
)
| 本示例展示了在eTS中分布式关系型数据库的使用,在增、删、改、查的基本操作外,还包括分布式数据库的数据同步能力。 | eTS |
| 元能力 |
[
BackgroundTaskManager
](
https://gitee.com/openharmony/applications_app_samples/tree/master/ResourcesSchedule/BackgroundTaskManager
)
| 本示例模拟下载功能,将下载任务通过后台任务管理进行处理,实现退出应用后任务仍能够执行,直至任务结束。 | eTS |
| 元能力 |
[
BringApp
](
https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/BringApp
)
| 本示例使用FeatureAbility接口,通过应用的包名与Ability名,拉起系统应用。 | eTS |
| 媒体 |
[
VideoPlayer
](
https://gitee.com/openharmony/applications_app_samples/tree/master/media/VideoPlayer
)
| 本示例展示了在eTS中VideoPlayer如何播放视频,同时提供一个可供其他应用调用播放视频的Ability。 | eTS |
| 元能力 |
[
DistributeCalc
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Preset/DistributeCalc
)
| 本示例使用JS分布式能力实现了一个简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一个计算器FA,两个FA进行协同计算。 | eTS |
| Web |
[
Browser
](
https://gitee.com/openharmony/applications_app_samples/tree/master/device/Browser
)
| 本示例运用OpenHarmony系统提供的Stage模型与相关接口展示了一个简易的浏览器。 | eTS |
| 元能力 |
[
DeviceUsageStatistics
](
https://gitee.com/openharmony/applications_app_samples/tree/master/device/DeviceUsageStatistics
)
| 本示例主要展示了设备使用信息情况。 | eTS |
| ArkUI |
[
AdaptiveCapabilities
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/AdaptiveCapabilities
)
| 本示例展示在eTS中的多设备自适应能力,包括资源限定词、原子布局和响应式布局。 | eTS |
| ArkUI |
[
Game2048
](
https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/Game2048
)
| 2048是一款比较流行的数字游戏,此游戏demo是grid组件基础上进行开发完成的。 | eTS |
| 窗口 |
[
Window
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Graphics/Window
)
| 本示例展示了创建新窗口,将应用悬浮在其他界面,及应用分屏等功能 | eTS |
| 分布式数据管理 |
[
Preference
](
https://gitee.com/openharmony/applications_app_samples/tree/master/data/Preferences
)
| 本示例主要展示了首选项在主题切换方面的功能。 | eTS |
| ArkUI |
[
NativeAPI
](
https://gitee.com/openharmony/applications_app_samples/tree/master/Native/NativeAPI
)
| 本示例展示了在eTS中如何调用C++的接口以及C++如何回调JS,完成了一个简单的五子棋游戏,在native层完成计算逻辑,eTS完成界面绘制和刷新。 | eTS/C++ |
| 全球化 |
[
International
](
https://gitee.com/openharmony/applications_app_samples/tree/master/common/International
)
| 本示例展示了i18n,intl,resourceManager在eTS中的使用,使用相关api实现系统语言和地区设置、时间和时区设置,展示了区域格式化示例。 | eTS |
请访问
[
Samples
](
https://gitee.com/openharmony/applications_app_samples
)
仓了解更多信息。
## 修复缺陷列表
...
...
@@ -228,5 +226,4 @@ _[API差异报告](api-change/v3.2-beta1/readme.md)_
| ISSUE | 问题描述 | 影响 | 计划解决日期 |
| ------------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------------------------------------ | ------------ |
|
[
I4Z3G9
](
https://gitee.com/openharmony/graphic_graphic_2d/issues/I4Z3G9
)
| 【RK3568】打开沉浸式主窗口和在主窗口上打开辅助窗口出现闪屏 | 影响开发者体验 | 2022-06-15 |
|
[
I59M4Q
](
https://gitee.com/openharmony/developtools_hdc/issues/I59M4Q
)
| 使用API 9的hdc_std连接设备小概率断连 | 存在低概率断连(几率小于1/30)。可通过重启IDE或者hdc_std恢复。 | 2022-06-30 |
|
[
I54D32
](
https://gitee.com/openharmony/multimedia_camera_standard/issues/I54D32
)
| 【RK3568】相机连续多次录像出现黑屏 | 影响开发者体验 | 2022-06-15 |
|
[
I59M4Q
](
https://gitee.com/openharmony/developtools_hdc/issues/I59M4Q
)
| 使用API 9的hdc_std连接设备小概率断连 | 存在低概率断连(几率小于1/30)。可通过重启IDE或者hdc_std恢复。 | 2022-06-30 |
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录