-
hello world
-
+
+
```
-
-xxx.json配置文件:
-
-
+JSON配置文件:
```json
{
"data": {
- "myBackgroundColor": "#87ceeb",
- "canUseSlider": "false"
+ "imageSrc": "defaultSrc.png"
},
"apiVersion": {
- "6": {
- "myBackgroundColor": "@sys.color.fa_background"
- },
- "7": {
- "canUseSlider": "true"
+ "9": {
+ "imageSrc": "newSrc.webp"
}
}
}
```
-
JS服务卡片开发框架会根据应用中的配置及当前系统运行版本,选取最合适的数据。
+假设系统运行版本在8及以下,则实际解析的imageSrc值为defaultSrc.png;
-假设系统运行版本在5及以下,则实际解析的myBackgroundColor值为\#87ceeb,canUseSlider值为false;
-
-
-假设系统运行版本为6,则实际解析的myBackgroundColor值为\@sys.color.fa_background,canUseSlider值为false;
-
-
-假设系统运行版本为7及以上,则实际解析的际解析的myBackgroundColor值为\@sys.color.fa_background,canUseSlider值为true。
+假设系统运行版本为9,则实际解析的imageSrc值为newSrc.webp。
diff --git a/zh-cn/application-dev/windowmanager/application-window-fa.md b/zh-cn/application-dev/windowmanager/application-window-fa.md
index 77a1755900cdc27ab3ff42aa094d77270c9a1e9e..968540c91ddbf38ebc9ce853cb8a7dbe603a0568 100644
--- a/zh-cn/application-dev/windowmanager/application-window-fa.md
+++ b/zh-cn/application-dev/windowmanager/application-window-fa.md
@@ -136,16 +136,13 @@
当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用`destroy`接口销毁子窗口。
```js
- // 销毁子窗口。当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用destroy接口销毁子窗口,此处以监听窗口区域外的点击事件实现子窗口的销毁。
- windowClass.on('touchOutside', () => {
- console.info('touch outside');
- windowClass.destroy((err, data) => {
- if (err.code) {
- console.error('Failed to destroy the subwindow. Cause:' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in destroying the subwindow. Data: ' + JSON.stringify(data));
- });
+ // 销毁子窗口。当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用destroy接口销毁子窗口。
+ windowClass.destroy((err, data) => {
+ if (err.code) {
+ console.error('Failed to destroy the subwindow. Cause:' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in destroying the subwindow. Data: ' + JSON.stringify(data));
});
```
diff --git a/zh-cn/application-dev/windowmanager/application-window-stage.md b/zh-cn/application-dev/windowmanager/application-window-stage.md
index 22276bfd2365379cddbb9c32a8e7ef83008f66a2..1cb4e281f1c78336a50df42cbe79e1e5b7f120f0 100644
--- a/zh-cn/application-dev/windowmanager/application-window-stage.md
+++ b/zh-cn/application-dev/windowmanager/application-window-stage.md
@@ -127,11 +127,12 @@ class MainAbility extends Ability {
```ts
import Ability from '@ohos.application.Ability'
+ let windowStage_ = null;
+ let sub_windowClass = null;
class MainAbility extends Ability {
- onWindowStageCreate(windowStage) {
+ showSubWindow() {
// 1.创建应用子窗口。
- let sub_windowClass = null;
- windowStage.createSubWindow("mySubWindow", (err, data) => {
+ windowStage_.createSubWindow("mySubWindow", (err, data) => {
if (err.code) {
console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(err));
return;
@@ -139,7 +140,7 @@ class MainAbility extends Ability {
sub_windowClass = data;
console.info('Succeeded in creating the subwindow. Data: ' + JSON.stringify(data));
// 1.获取已创建的应用子窗口。
- windowStage.getSubWindow((err, data) => {
+ windowStage_.getSubWindow((err, data) => {
if (err.code) {
console.error('Failed to obtain the subWindow. Cause:' + JSON.stringify(err));
return;
@@ -178,16 +179,30 @@ class MainAbility extends Ability {
console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data));
});
});
- // 4.销毁子窗口。当不再需要子窗口时,可根据具体实现逻辑,使用destroy对其进行销毁。
- sub_windowClass.destroy((err, data) => {
- if (err.code) {
- console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data));
- });
})
}
+
+ destroySubWindow() {
+ // 4.销毁子窗口。当不再需要子窗口时,可根据具体实现逻辑,使用destroy对其进行销毁。
+ sub_windowClass.destroy((err, data) => {
+ if (err.code) {
+ console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data));
+ });
+ }
+
+ onWindowStageCreate(windowStage) {
+ windowStage_ = windowStage;
+ // 开发者可以在适当的时机,如主窗口上按钮点击事件等,创建子窗口。并不一定需要在onWindowStageCreate调用,这里仅作展示
+ this.showSubWindow();
+ }
+
+ onWindowStageDestroy() {
+ // 开发者可以在适当的时机,如子窗口上点击关闭按钮等,销毁子窗口。并不一定需要在onWindowStageDestroy调用,这里仅作展示
+ this.destroySubWindow();
+ }
};
```
diff --git a/zh-cn/application-dev/windowmanager/window-overview.md b/zh-cn/application-dev/windowmanager/window-overview.md
index 40d122f4bb00a706739c186d14f4cf5e4b8c5160..f98f6d42d9d1130daca4a0c30bed28babc0926e1 100644
--- a/zh-cn/application-dev/windowmanager/window-overview.md
+++ b/zh-cn/application-dev/windowmanager/window-overview.md
@@ -65,4 +65,8 @@ OpenHarmony的窗口模块将窗口界面分为系统窗口、应用窗口两种
## 约束与限制
-在FA模型下,不支持系统窗口的相关开发。
+- 在FA模型下,不支持系统窗口的相关开发。
+
+- 应用主窗口与子窗口存在大小限制,宽度范围:[320, 2560],高度范围:[240, 2560],单位为vp。
+
+- 系统窗口存在大小限制,宽度范围:[0, 2560],高度范围:[0, 2560],单位为vp。
\ No newline at end of file
diff --git a/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md b/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md
index 09a32f7c4d89e3e74b1a3a232a213e1b5be07899..fc6af49701af96bf471528f33c670fabffa8f03e 100644
--- a/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md
+++ b/zh-cn/device-dev/reference/hdi-apis/_input_dev_ability.md
@@ -25,7 +25,7 @@ Input设备的能力属性,存储支持事件的位图。用位的方式来表
| [ledCode](#ledcode) [[BITS_TO_UINT64](input.md#bitstouint64)(LED_CNT)] | 记录设备支持的指示灯的位图 |
| [miscCode](#misccode) [[BITS_TO_UINT64](input.md#bitstouint64)(MSC_CNT)] | 记录设备支持的其他功能的位图 |
| [soundCode](#soundcode) [[BITS_TO_UINT64](input.md#bitstouint64)(SND_CNT)] | 记录设备支持的声音或警报的位图 |
-| [forceCode](#forcecode) [[BITS_TO_UINT64](input.md#bitstouint64)([HDF_FF_CNT](input.md#hdfffcnt))] | 记录设备支持的作用力功能的位图 |
+| [forceCode](#forcecode) [[BITS_TO_UINT64](input.md#bitstouint64)([HDF_FF_CNT](input.md#hdf_ff_cnt))] | 记录设备支持的作用力功能的位图 |
| [switchCode](#switchcode) [[BITS_TO_UINT64](input.md#bitstouint64)(SW_CNT)] | 记录设备支持的开关功能的位图 |
| [keyType](#keytype) [[BITS_TO_UINT64](input.md#bitstouint64)(KEY_CNT)] | 按键状态的位图 |
| [ledType](#ledtype) [[BITS_TO_UINT64](input.md#bitstouint64)(LED_CNT)] | LED状态的位图 |
diff --git a/zh-cn/device-dev/reference/hdi-apis/display__vgu_8h.md b/zh-cn/device-dev/reference/hdi-apis/display__vgu_8h.md
index 77ed4834405cd20597f9a5213cb25ccbfb6aa00b..46da91de2d965b8b6655f1a9fb1362f71e31503d 100644
--- a/zh-cn/device-dev/reference/hdi-apis/display__vgu_8h.md
+++ b/zh-cn/device-dev/reference/hdi-apis/display__vgu_8h.md
@@ -55,7 +55,7 @@
| -------- | -------- |
| [VGUScalar](_display.md#vguscalar) | VGU标量 |
| [VGUPixelFormat](_display.md#vgupixelformat) | 像素格式。 |
-| [VGUBlendType](_display.mdvgublendtype) | 混合操作类型。 |
+| [VGUBlendType](_display.md#vgublendtype) | 混合操作类型。 |
### 枚举
diff --git a/zh-cn/device-dev/subsystems/Readme-CN.md b/zh-cn/device-dev/subsystems/Readme-CN.md
index 901db72406063e38d4675440075e1b915d050bc3..55484af986e76860b2bfa24072e8b689a45f2ff7 100644
--- a/zh-cn/device-dev/subsystems/Readme-CN.md
+++ b/zh-cn/device-dev/subsystems/Readme-CN.md
@@ -18,6 +18,7 @@
- [查看NinjaTrace](subsys-build-reference.md#查看ninjatrace)
- [HAP编译构建指导](subsys-build-gn-hap-compilation-guide.md)
- [ 常见问题](subsys-build-FAQ.md)
+- [ArkCompiler](subsys-arkcompiler-guide.md)
- [分布式远程启动](subsys-remote-start.md)
- 图形图像
- [图形图像概述](subsys-graphics-overview.md)
diff --git a/zh-cn/device-dev/subsystems/subsys-arkcompiler-guide.md b/zh-cn/device-dev/subsystems/subsys-arkcompiler-guide.md
new file mode 100644
index 0000000000000000000000000000000000000000..71a7dd2efcee380a0fa471e8273a0737db874924
--- /dev/null
+++ b/zh-cn/device-dev/subsystems/subsys-arkcompiler-guide.md
@@ -0,0 +1,82 @@
+# ArkCompiler开发指导
+
+## 概述
+ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。
+
+## 编译环境配置
+推荐操作系统Ubuntu18.04及以上。
+
+1. 安装依赖工具。
+ ```shell
+ sudo apt-get update && sudo apt-get install python ruby python3-pip git-lfs gcc-multilib g++-multilib zlib1g-dev libc++1 curl nodejs
+ ```
+2. 安装repo工具。
+ ```shell
+ mkdir ~/bin/
+ curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
+ chmod a+x ~/bin/repo
+ export PATH=~/bin:$PATH
+ pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
+ ```
+3. 下载源码。
+ ```shell
+ repo init -u https://gitee.com/ark-standalone-build/manifest.git -b master
+ repo sync -c -j8
+ repo forall -c 'git lfs pull'
+ ```
+
+4. 安装编译器及二进制工具。
+ ```shell
+ ./prebuilts_download.sh
+ ```
+
+## 开发步骤
+
+1. 生成编译产物ark_js_vm及js2abc。
+ ```shell
+ python ark.py x64.release
+ ```
+ - ark_js_vm:运行abc文件的可执行程序。
+ - js2abc:将ArkTS文件转换生成ArkCompiler字节码文件的工具。
+
+2. 将TypeScript文件转换为abc文件。
+ ```shell
+ prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin/node --expose-gc out/x64.release/clang_x64/obj/arkcompiler/ets_frontend/ts2panda/build/src/index.js helloworld.ts --opt-level 0
+ ```
+ TypeScript用例文件helloworld.ts源码。
+ ```JavaScript
+ declare function print(arg:any):string;
+ print("Hello world!");
+ ```
+
+3. 执行生成的abc文件。
+ ```shell
+ out/x64.release/clang_x64/arkcompiler/ets_runtime/ark_js_vm helloworld.abc
+ ```
+ abc文件:ArkCompiler字节码文件。
+
+ 执行结果:
+ ```
+ Hello world!
+ ```
+
+## 执行Test262测试套
+```
+python ark.py x64.release test262
+```
+
+## 编译选项
+
+交叉编译可根据目标选择不同平台,如在x64平台构建arm64目标平台,更多平台选择可参考下方获取更多编译说明。
+```
+python ark.py arm64.release
+```
+编译模式选择,如在x64平台构建debug版本。
+```
+python ark.py x64.debug
+```
+获取更多编译说明。
+```
+python ark.py --help
+```
+
diff --git a/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md b/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md
index 16c8318d068221441622c4b6ac881424c84c6bde..a182e7442718d4e0205aebf6ad07c449a97b3907 100644
--- a/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md
+++ b/zh-cn/release-notes/OpenHarmony-v3.2-beta3.md
@@ -167,7 +167,7 @@ DeviceProfile适配分布式数据库自动同步策略,以及采集信息补
| 语言编译运行时子系统 | 前端编译性能提升,如es2abc。
运行时性能提升优化,如ISA重构优化、汇编解释器、TSAOT等。
新增功能,如支持严格模式的ES2021、模块化支持、Runtime 调试调优增强、字节码热重载等。
具体如下:
I5MYM9 【新增规格】运行时多模块单abc文件合并适配
I59TAQ【新增规格】支持TSAOT优化编译器标准编译lowering和优化pass(规格)描述
I5OJ8Q【新增规格】IDE属性查看功能补齐已支持的2021规范定义的类型
I5ODV4 【新增特性】 支持字节码补丁文件卸载功能
I5OXSC 【新增特性】 支持字节码补丁文件加载功能
I5HNNZ 【新增特性】使能加载器的命名空间
I5HVQE 【新增特性】线程stacksize根据产品配置,增加stack pageguard保护
I5MCUF【增强特性】libc增加CAPI接口,支持pthread等符号
I5HVNH【新增特性】RM.006.增强动态库符号管理
I5HVQ0 【新增特性】RM.008.musl支持fortify功能
I5KT7X 【新增特性】RM.002.提供API头文件API检测功能
I5TB3Y 【新增特性】ABI默认使用emutls特性
I5R119 【增强特性】拆分加载器与libc内存使用
支持clang工具链的开源构建
I5MYM9【新增规格】前端编译工具链支持模块化编译
I5IKO1【新增规格】前端abc支持commonjs模块
I5RRAJ【新增规格】补丁文件源码识别工具
I5PRFT【新增规格】补丁字节码编译工具
I5RHDH【新增规格】支持方舟字节码热加载
I5RA7C【新增规格】支持strict模式2021
I5HRUY【新增规格】es2abc支持js转换方舟字节码 | NA |
| 帐号&程序访问控制子系统 | 帐号服务新增用户身份认证服务;权限服务新增支持精准定位或模糊定位,以及其他能力增强;新增隐私管理服务。
主要涉及如下需求:
I5N90B【新增规格】应用帐号适配沙箱应用
I5N90O【新增规格】帐号子系统新增用户身份认证服务
I5NOQI【新增特性】权限服务支持精准定位或模糊定位
I5NT1X【新增特性】权限使用记录管理增强
I5NU8U【新增特性】权限弹框UX界面增强
I5P4IU【新增特性】新增隐私管理服务
I5P530【新增特性】位置服务使用状态管理 | NA |
| 全球化子系统 | 新增支持翻译伪本地化能力。
涉及如下需求:
I4WLSJ 【新增特性】翻译伪本地化能力 | NA |
-| Misc服务子系统 | 新增剪贴板、上传下载、锁屏、输入法框架等模块基础特性。
主要涉及如下需求:
I5JPMG 【request部件】【download】后台任务通知
I5NXHK 【input_method_fwk部件】输入法框架支持仅绑定输入法innerkits接口和独立控制软键盘显隐的js接口
I5NG2X 【theme_screenlock部件】支持特定系统应用请求锁定屏幕
I5IU1Z 支持向剪贴板数据增加图片内容的数据项
I5OGA3 支持设备级的跨设备剪贴板开关
I5NMKI 【pasteboard部件】支持向剪贴板数据增加二进制数据
I5MAMN 支持剪贴板数据范围限制在应用内
I5OX20 【input_method_fwk部件】输入法框架支持获取输入法扩展 | NA |
+| Misc服务子系统 | 新增剪贴板、上传下载、锁屏、输入法框架等模块基础特性。
主要涉及如下需求:
I5JPMG 【request部件】【download】后台任务通知
I5NXHK 【input_method_fwk部件】输入法框架支持仅绑定输入法innerkits接口和独立控制软键盘显隐的js接口
I5NG2X 【theme_screenlock部件】支持特定系统应用请求锁定屏幕
I5IU1Z 支持向剪贴板数据增加图片内容的数据项
I5OGA3 支持剪贴板插件加载开关
I5NMKI 【pasteboard部件】支持向剪贴板数据增加二进制数据
I5MAMN 支持剪贴板数据范围限制在应用内
I5OX20 【input_method_fwk部件】输入法框架支持获取输入法扩展 | NA |
| ArkUI子系统 | ArkUI组件能力增强;资源、媒体查询能力增强;内存、性能优化;DFX能力增强;工具链能力增强。
主要涉及如下需求:
I5IZZ7 【ace_engine_standard部件】panel组件支持单独设置每个角的borderRadius
I5JQ1R 【ace_engine_standard部件】支持图片复制粘贴
I5JQ3F 【ace_engine_standard部件】输入框能力增强
I5JQ3J 【ace_engine_standard部件】stack组件新增事件拓传机制
I5JQ54 【ace_engine_standard部件】指定控件获取焦点
I5MX7J 【ace_engine_standard部件】list列表支持左滑/右滑及回弹效果
I5MWS0 【ace_engine_standard部件】panel组件弹出高度通知给开发者
I5IZVY 【ace_engine_standard部件】键鼠接入时支持组件刷新
I5JQ5Y 【ace_engine_standard部件】走焦能力增强
I5IY7K 【新增需求】【ace_engine_standard部件】主题能力支持
I5MWTB 【ace_engine_standard部件】媒体查询支持vp查询
I5IZU9 【ace_engine_standard部件】ui_service常驻内存优化
I5JQ26 【ace_engine_standard部件】Vsync请求机制流程优化
I5JQ2O 【ace_engine部件】公共资源预加载
I5JQ2D 【ace_engine_standard部件】Move事件重采样优化
I5IZXS 【toolchain部件】DFX打印错误堆栈时支持显示开发者变量名称原文
I5IZYG 【toolchain部件】DFX打印错误堆栈时支持显示开发者变量名称原文
I5IZX0 【toolchain部件】编译支持解析$r新增bundleName和moduleName参数
I5J09I 【toolchain部件】\@Builder 支持export导出 | NA |
API变更请参考:
@@ -188,7 +188,7 @@ API变更请参考:
| -------- | -------- | -------- | -------- |
| ArkUI | [HealthyDiet:健康饮食](https://gitee.com/openharmony/applications_app_samples/tree/master/ETSUI/HealthyDiet) | 这是一个记录饮食和查看食物信息的应用,主要用于管理饮食健康。可以添加饮食信息,包括食物的种类、重量以及用餐时间,如早餐、 午餐、晚餐和夜宵,并能统计得到相应用餐时间的总热量值、总蛋白质、总脂肪和总碳水值,并且用柱状图的形式展示出来。 | eTS |
| ArkUI | [MusicAlbum:一多音乐专辑主页](https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/MusicAlbum) | 本示例展示了音乐专辑主页,使用一次开发多端部署中介绍的自适应布局能力和响应式布局能力进行多设备(或多窗口尺寸)适配,保证应用在不同设备或不同窗口尺寸下可以正常显示。 | eTS |
-| 元能力、文件管理 | [Share:分享](https://gitee.com/openharmony/applications_app_samples/tree/master/Share/Share) | 分享的主要工作是实现:发送方将文本,链接,图片文件三种类型分享给三方应用,同时能够在三方应用中分别呈现出来。 | eTS |
+| 元能力、文件管理 | [Share:分享](https://gitee.com/openharmony/applications_app_samples/tree/master/Share/CustomShare) | 分享的主要工作是实现:发送方将文本,链接,图片文件三种类型分享给三方应用,同时能够在三方应用中分别呈现出来。 | eTS |
| 元能力 | [GalleryForm:图库卡片](https://gitee.com/openharmony/applications_app_samples/tree/master/ability/GalleryForm) | 本示例是模拟图库卡片,实现对图库中的照片在卡片中显示,定时刷新卡片内容等功能。 | eTS |
| ArkUI | [AppMarket:一多应用市场首页](https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/AppMarket) | 本示例展示了应用市场首页,页面中包括Tab栏、运营横幅、精品应用、精品游戏等。 | eTS |
| ArkUI | [Weather:一多天气](https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/Weather) | 本示例展示一个天气应用界面,包括首页、城市管理、添加城市、更新时间弹窗,体现一次开发,多端部署的能力。 | eTS |