From 7aae1573706e2df8fbdbe4b2561f05cca6c6421d Mon Sep 17 00:00:00 2001 From: zyjhandsome Date: Tue, 11 Apr 2023 13:12:08 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81TS=E6=96=87=E4=BB=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BATypeScript=E6=96=87=E4=BB=B6=E3=80=82=202?= =?UTF-8?q?=E3=80=81=E8=A1=A5=E5=85=85=E5=BA=94=E7=94=A8=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E5=92=8C=E7=BA=BF=E7=A8=8B=E7=9A=84=E5=91=BD=E4=BB=A4=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=96=B9=E5=BC=8F=E3=80=82=203=E3=80=81=E5=9C=A8?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=AE=9A=E6=97=B6=E5=AE=9A=E7=82=B9=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD=E4=B9=8B=E5=89=8D=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=B8=AA=E4=BD=BF=E8=83=BD=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E7=9A=84=E8=AF=B4=E6=98=8E=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zyjhandsome --- .../application-models/abilitystage.md | 38 +++++++++---------- .../arkts-ui-widget-update-by-time.md | 18 ++++++--- .../application-models/process-model-stage.md | 3 +- .../application-models/thread-model-stage.md | 26 ++++++------- 4 files changed, 44 insertions(+), 41 deletions(-) diff --git a/zh-cn/application-dev/application-models/abilitystage.md b/zh-cn/application-dev/application-models/abilitystage.md index e03aedc6c5..936f00d664 100644 --- a/zh-cn/application-dev/application-models/abilitystage.md +++ b/zh-cn/application-dev/application-models/abilitystage.md @@ -12,21 +12,21 @@ DevEco Studio默认工程中未自动生成AbilityStage,如需要使用Ability 1. 在工程Module对应的ets目录下,右键选择“New > Directory”,新建一个目录并命名为myabilitystage。 -2. 在myabilitystage目录,右键选择“New > ts File”,新建一个TS文件并命名为MyAbilityStage.ts。 +2. 在myabilitystage目录,右键选择“New > TypeScript File”,新建一个TypeScript文件并命名为MyAbilityStage.ts。 -3. 打开MyAbilityStage.ts文件,导入AbilityStage的依赖包,自定义类继承AbilityStage并加上需要的生命周期回调,示例中增加了一个onCreate()生命周期回调。 +3. 打开MyAbilityStage.ts文件,导入AbilityStage的依赖包,自定义类继承AbilityStage并加上需要的生命周期回调,示例中增加了一个`onCreate()`生命周期回调。 ```ts import AbilityStage from '@ohos.app.ability.AbilityStage'; export default class MyAbilityStage extends AbilityStage { - onCreate() { - // 应用的HAP在首次加载的时,为该Module初始化操作 - } - onAcceptWant(want) { - // 仅specified模式下触发 - return "MyAbilityStage"; - } + onCreate() { + // 应用的HAP在首次加载的时,为该Module初始化操作 + } + onAcceptWant(want) { + // 仅specified模式下触发 + return "MyAbilityStage"; + } } ``` @@ -42,28 +42,26 @@ DevEco Studio默认工程中未自动生成AbilityStage,如需要使用Ability } ``` +[AbilityStage](../reference/apis/js-apis-app-ability-abilityStage.md)拥有[`onCreate()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调和[`onAcceptWant()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)、[`onConfigurationUpdated()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)、[`onMemoryLevel()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调。 -[AbilityStage](../reference/apis/js-apis-app-ability-abilityStage.md)拥有[onCreate()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调和[onAcceptWant()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)、[onConfigurationUpdated()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)、[onMemoryLevel()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调。 +- [`onCreate()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调:在开始加载对应Module的第一个UIAbility实例之前会先创建AbilityStage,并在AbilityStage创建完成之后执行其onCreate()生命周期回调。AbilityStage模块提供在Module加载的时候,通知开发者,可以在此进行该Module的初始化(如资源预加载,线程创建等)能力。 -- [onCreate()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageoncreate)生命周期回调:在开始加载对应Module的第一个UIAbility实例之前会先创建AbilityStage,并在AbilityStage创建完成之后执行其onCreate()生命周期回调。AbilityStage模块提供在Module加载的时候,通知开发者,可以在此进行该Module的初始化(如资源预加载,线程创建等)能力。 +- [`onAcceptWant()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)事件回调:UIAbility[指定实例模式(specified)](uiability-launch-type.md#specified启动模式)启动时候触发的事件回调,具体使用请参见[UIAbility启动模式综述](uiability-launch-type.md)。 -- [onAcceptWant()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonacceptwant)事件回调:UIAbility[指定实例模式(specified)](uiability-launch-type.md#specified启动模式)启动时候触发的事件回调,具体使用请参见[UIAbility启动模式综述](uiability-launch-type.md)。 +- [`onConfigurationUpdated()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)事件回调:当系统全局配置发生变更时触发的事件,系统语言、深浅色等,配置项目前均定义在[`Configuration`](../reference/apis/js-apis-app-ability-configuration.md)类中。 -- [onConfigurationUpdated()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonconfigurationupdate)事件回调:当系统全局配置发生变更时触发的事件,系统语言、深浅色等,配置项目前均定义在[Configuration](../reference/apis/js-apis-app-ability-configuration.md)类中。 - -- [onMemoryLevel()](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调:当系统调整内存时触发的事件。 - +- [`onMemoryLevel()`](../reference/apis/js-apis-app-ability-abilityStage.md#abilitystageonmemorylevel)事件回调:当系统调整内存时触发的事件。 -应用被切换到后台时,系统会将在后台的应用保留在缓存中。即使应用处于缓存中,也会影响系统整体性能。当系统资源不足时,系统会通过多种方式从应用中回收内存,必要时会完全停止应用,从而释放内存用于执行关键任务。为了进一步保持系统内存的平衡,避免系统停止用户的应用进程,可以在AbilityStage中的onMemoryLevel()生命周期回调中订阅系统内存的变化情况,释放不必要的资源。 +应用被切换到后台时,系统会将在后台的应用保留在缓存中。即使应用处于缓存中,也会影响系统整体性能。当系统资源不足时,系统会通过多种方式从应用中回收内存,必要时会完全停止应用,从而释放内存用于执行关键任务。为了进一步保持系统内存的平衡,避免系统停止用户的应用进程,可以在AbilityStage中的`onMemoryLevel()`生命周期回调中订阅系统内存的变化情况,释放不必要的资源。 ```ts import AbilityStage from '@ohos.app.ability.AbilityStage'; export default class MyAbilityStage extends AbilityStage { - onMemoryLevel(level) { - // 根据系统可用内存的变化情况,释放不必要的内存 - } + onMemoryLevel(level) { + // 根据系统可用内存的变化情况,释放不必要的内存 + } } ``` diff --git a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md index f9fa1737ae..2a691deea8 100644 --- a/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md +++ b/zh-cn/application-dev/application-models/arkts-ui-widget-update-by-time.md @@ -1,10 +1,15 @@ # 定时刷新和定点刷新 +在使用定时和定点刷新功能之前,需要在form_config.json配置文件中设置`updateEnabled`字段为`true`,以启用周期性刷新功能。 当前卡片框架提供了如下几种按时间刷新卡片的方式: -- 定时刷新:表示每隔一段时间刷新卡片内容,在form_config.json文件中配置,详见[updateDuration](arkts-ui-widget-configuration.md)字段。例如,每小时刷新一次卡片内容。注意:updateDuration(定时刷新)优先级比scheduledUpdateTime(定点刷新)高,配置定时刷新后,定点刷新将失效。 +- 定时刷新:表示每隔一段时间刷新卡片内容,在form_config.json文件中配置,详见[updateDuration](arkts-ui-widget-configuration.md)字段。例如,每小时刷新一次卡片内容。 + + > **说明:** + > + > 当配置了updateDuration(定时刷新)后,该设置会优先于scheduledUpdateTime(定点刷新)生效,即使同时配置了两者,定点刷新也会被忽略。 ```json { @@ -29,11 +34,12 @@ ] } ``` - + - 定点刷新:表示每天在某个时间点刷新,在form_config.json文件中配置,详见[scheduledUpdateTime](arkts-ui-widget-configuration.md)字段。例如,每天在10:30更新卡片内容。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 当同时配置了定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)时,定时刷新的优先级更高。如果想要配置定点刷新,则需要将updateDuration配置为0。 - + > **说明:** + > + > 当同时配置了定时刷新(updateDuration)和定点刷新(scheduledUpdateTime)时,定时刷新的优先级更高。如果想要配置定点刷新,则需要将updateDuration配置为0。 + ```json { @@ -58,7 +64,7 @@ ] } ``` - + - 下次刷新:通过[setFormNextRefreshTime](../reference/apis/js-apis-app-form-formProvider.md#setformnextrefreshtime)接口指定卡片的下一次刷新时间(最短时间5分钟),例如,在接口调用的5分钟后刷新卡片内容。 ```ts diff --git a/zh-cn/application-dev/application-models/process-model-stage.md b/zh-cn/application-dev/application-models/process-model-stage.md index 88b9af254c..eeb6c13e05 100644 --- a/zh-cn/application-dev/application-models/process-model-stage.md +++ b/zh-cn/application-dev/application-models/process-model-stage.md @@ -15,7 +15,8 @@ OpenHarmony的进程模型如下图所示: > 说明: > -> 仅系统应用支持构建ServiceExtensionAbility和DataShareExtensionAbility。 +> - 仅系统应用支持构建ServiceExtensionAbility和DataShareExtensionAbility。 +> - 执行`hdc shell`命令,进入设备的shell命令行。在shell命令行中,执行`ps -ef`命令,可以查看所有正在运行的进程信息。 在上述模型基础上,对于系统应用可以通过申请多进程权限(如下图所示),为指定HAP配置一个自定义进程名,该HAP中的UIAbility、DataShareExtensionAbility、ServiceExtensionAbility就会运行在自定义进程中。不同的HAP可以通过配置不同的进程名运行在不同进程中。 diff --git a/zh-cn/application-dev/application-models/thread-model-stage.md b/zh-cn/application-dev/application-models/thread-model-stage.md index 9c238e1b8c..f98fb9e6c7 100644 --- a/zh-cn/application-dev/application-models/thread-model-stage.md +++ b/zh-cn/application-dev/application-models/thread-model-stage.md @@ -2,24 +2,22 @@ OpenHarmony应用中每个进程都会有一个主线程,主线程有如下职责: -1. 负责管理其他线程 +在OpenHarmony应用中,每个进程都会有一个主线程,主线程具有以下职责: -2. 同应用多个UIAbility组件共用一个主线程 +1. 管理其他线程,包括Worker线程。 -3. 输入事件分发 - -4. UI绘制 - -5. 应用代码回调(事件处理,生命周期) - -6. 接收Worker发送的消息 - -除主线程外,还有一类与主线程并行的独立线程Worker,主要用于执行耗时操作,但不可以直接操作UI。Worker线程在主线程中创建,与主线程相互独立。最多可以创建7个Worker: +2. 与应用中多个UIAbility组件共用一个主线程。 +3. 分发输入事件。 +4. 执行UI绘制。 +5. 处理应用代码的回调,包括事件处理和生命周期管理。 +6. 接收Worker发送的消息。 +除了主线程外,还有一类独立的Worker线程,用于执行耗时操作。Worker线程在主线程中创建,与主线程相互独立,但不能直接操作UI。最多可以创建7个Worker线程。 ![thread-model-stage](figures/thread-model-stage.png) 基于OpenHarmony的线程模型,不同的业务功能运行在不同的线程上,业务功能的交互就需要线程间通信。同一个进程内,线程间通信目前主要有Emitter和Worker两种方式,其中Emitter主要适用于线程间的事件同步, Worker主要用于新开一个线程执行耗时任务。 -**说明:** - - * Stage模型只提供了主线程和Worker线程,Emitter主要用于主线程内或者主线程和Worker线程的事件同步。 \ No newline at end of file +> **说明:** +> +> - Stage模型只提供了主线程和Worker线程,Emitter主要用于主线程内或者主线程和Worker线程的事件同步。 +> - 执行`hdc shell`命令,进入设备的shell命令行。在shell命令行中,执行`ps -p -T`命令,可以查看指定应用进程的线程信息。其中,``为需要指定的应用进程的进程ID。 \ No newline at end of file -- GitLab