未验证 提交 5a9dff07 编写于 作者: O openharmony_ci 提交者: Gitee

!2721 修改内源演练问题

Merge pull request !2721 from 时睿/master
......@@ -195,7 +195,7 @@ OpenHarmony支持如下几种系统类型:
</tr>
<tr id="row1982159115313"><td class="cellrowborder" align="left" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p14307173571315"><a name="p14307173571315"></a><a name="p14307173571315"></a>升级服务</p>
</td>
<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p887484183"><a name="p887484183"></a><a name="p887484183"></a>可支持OpenHarmony设备的OTA(Over The Air)升级。</p>
<td class="cellrowborder" align="left" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p887484183"><a name="p887484183"></a><a name="p887484183"></a>可支持OpenHarmony设备的OTA(Over The Air)升级。</p>
</td>
<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p10550164995117"><a name="p10550164995117"></a><a name="p10550164995117"></a>标准系统</p>
</td>
......@@ -301,7 +301,7 @@ OpenHarmony支持如下几种系统类型:
</tr>
<tr id="row1449910380242"><td class="cellrowborder" valign="top" width="11.148885111488852%" headers="mcps1.1.4.1.1 "><p id="p238324932415"><a name="p238324932415"></a><a name="p238324932415"></a>分布式软总线</p>
</td>
<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p17499153862420"><a name="p17499153862420"></a><a name="p17499153862420"></a>分布式软总线旨在为OpenHarmony系统提供跨进程或跨设备的通信能力,主要包含软总线和进程间通信两部分。其中,软总线为应用和系统提供近场设备间分布式通信的能力,提供不区分通信方式的设备发现,连接,组网和传输功能;而进程间通信则提供不区分设备内或设备间的进程间通信能力。</p>
<td class="cellrowborder" valign="top" width="80.49195080491951%" headers="mcps1.1.4.1.2 "><p id="p17499153862420"><a name="p17499153862420"></a><a name="p17499153862420"></a>分布式软总线旨在为OpenHarmony系统提供跨进程或跨设备的通信能力,主要包含软总线和进程间通信两部分。其中,软总线为应用和系统提供近场设备间分布式通信的能力,提供不区分通信方式的设备发现,连接,组网和传输功能;而进程间通信则提供了对设备内或设备间无差别的进程间通信能力。</p>
</td>
<td class="cellrowborder" valign="top" width="8.35916408359164%" headers="mcps1.1.4.1.3 "><p id="p5499183812418"><a name="p5499183812418"></a><a name="p5499183812418"></a>所有系统</p>
</td>
......
......@@ -6,8 +6,14 @@
- [术语](../glossary.md)
- [版本说明](../release-notes/Readme.md)
- 快速开始
- [应用开发快速入门](quick-start/Readme-CN.md)
- [应用开发包结构说明](quick-start/package-structure.md)
- 快速入门
- [前言](quick-start/start-overview.md)
- [使用eTS语言开发](quick-start/start-with-ets.md)
- [使用JS语言开发(传统代码方式)](quick-start/start-with-js.md)
- [使用JS语言开发(低代码方式)](quick-start/start-with-js-low-code.md)
- 开发基础知识
- [应用开发包结构说明](quick-start/package-structure.md)
- [资源文件的分类](quick-start/basic-resource-file-categories.md)
- 开发
- [Ability开发](ability/Readme-CN.md)
- [UI开发](ui/Readme-CN.md)
......
# Ability助手使用指导
Ability assistant(Ability助手,简称为aa)是实现应用、原子化服务及测试用例启动功能,为开发者提供基本的调试及测试应用的工具。通过该工具,开发者可以在hdc shell中,发出命令以执行各种系统操作,比如启动Ability、强制停止进程、打印Ability相关信息等。
Ability assistant(Ability助手,简称为aa)是实现应用、原子化服务、及测试用例启动功能的工具,为开发者提供基本的应用调试和测试的能力。通过该工具,开发者可以在hdc shell中,发送命令以执行各种系统操作,比如启动Ability、强制停止进程、打印Ability相关信息等。
## 开发指导
......@@ -87,15 +87,15 @@ Ability assistant(Ability助手,简称为aa)是实现应用、原子化服
```
aa dump -a
```
![aa-dump-a](figures/aa-dump-a.png)
![aa-dump-a](figures/aa-dump-a.PNG)
```
aa dump -l
```
![aa-dump-l](figures/aa-dump-l.png)
![aa-dump-l](figures/aa-dump-l.PNG)
```
aa dump -i 12
```
![aa-dump-i](figures/aa-dump-i.png)
![aa-dump-i](figures/aa-dump-i.PNG)
- **force-stop**
通过bundle name强制停止一个进程。
......
......@@ -2,10 +2,10 @@
​ Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。
​ Ability框架模型结构具有两种形态:
​ Ability框架模型结构具有两种框架形态:
- 第一种形态为FA模型。API 8及其更早版本的应用程序只能使用FA模型进行开发。 FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility
- 第二种形态为Stage模型。从API 9开始,Ability框架引入了Stage模型作为第二种应用形态,Stage模型将Ability分为Ability和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。
- 第一种形态为FA模型。API 8及其更早版本的应用程序只能使用FA模型进行开发。 FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility
- 第二种形态为Stage模型。从API 9开始,Ability框架引入了Stage模型作为第二种应用框架形态,Stage模型将Ability分为Ability和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。
​ Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。下表给出了两种模型在设计上的差异:
......
......@@ -10,7 +10,11 @@ Delegator测试框架是OpenHarmony提供的一套开发者应用自测试框架
## 测试框架启动
测试框架启动有两种方式,方式一:通过`aa test`命令启动,方式二:通过IDE启动。
测试框架启动有两种方式:
- 方式一:通过`aa test`命令启动。
- 方式二:通过IDE启动。
### aa test启动
开发者可通过 `aa test` 命令启动启动测试框架,开发者可以自行指定使用的runner以及runner所在hap包的package name/module name,具体命令示例如下:
......
# FA模型综述
## 整体架构
OpenHarmony用户程序的开发本质上就是开发Ability,OpenHarmony系统也是通过调度Ability,通过系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。
OpenHarmony用户程序的开发本质上就是开发Ability。OpenHarmony系统是通过对Ability调度,结合系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。
Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为PageAbility、ServiceAbility、DataAbility、FormAbility几种类型。其中:
- PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例
- ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行
- DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行
- PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例
- ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行
- DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行
- FormAbility是卡片Ability,是一种界面展示形式。
## 应用包结构
......@@ -14,7 +14,7 @@ Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为Pag
![fa-package-info](figures/fa-package-info.png)
应用包结构的配置请参见[包结构说明](../quick-start/package-structure.md)
应用包结构的配置请参见[应用包结构配置文件的说明](../quick-start/package-structure.md)
## 生命周期
......
......@@ -2,28 +2,30 @@
## 概述
### 功能简介
PageAbility是具备ArkUI实现的Ability,是开发者具体可见并可以交互的Ability实例,开发者通过IDE创建Ability时,IDE会自动创建相关模板代码。PageAbility相关能力通过单例featureAbility暴露,生命周期相关回调通过app.js/app.ets中回调函数暴露
PageAbility是具备ArkUI实现的Ability,是开发者具体可见并可以交互的Ability实例。开发者通过IDE创建Ability时,IDE会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现
### PageAbility的生命周期
**Ability生命周期介绍**(Ability Life Cycle):
**PageAbility生命周期介绍**(Ability Life Cycle):
Ability生命周期是Ability被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转如下图所示:
PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。
PageAbility生命周期流转如下图所示:
![PageAbility-Lifecycle](figures/page-ability-lifecycle.png)
**Ability生命周期状态说明:**
- **UNINITIALIZED**:未初始状态,为临时状态,Ability被创建后会由UNINITIALIZED状态进入INITIAL状态。
- **UNINITIALIZED**:未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。
- **INITIAL**:初始化状态,也表示停止状态,表示当前Ability未运行,Ability被启动后由INITIAL态进入INACTIVE状态。
- **INITIAL**:初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入INACTIVE状态。
- **INACTIVE**:失去焦点状态,表示当前窗口已显示但是无焦点状态。
- **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点。
- **BACKGROUND**:后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。
- **BACKGROUND**:后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。
**PageAbility生命周期回调与生命周期状态的关系如下图所示:**
......@@ -100,6 +102,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
```
`want`参数也可以使用parameters参数,使用key-value的方式输入。
**示例**
```javascript
......@@ -148,6 +151,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
```
从DeviceManager获取`deviceId`,具体示例代码如下:
```ts
import deviceManager from '@ohos.distributedHardware.deviceManager';
let dmClass;
......@@ -167,6 +171,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
```
在跨设备场景下,需要向用户申请数据同步的权限。具体示例代码如下:
```ts
import abilityAccessCtrl from "@ohos.abilityAccessCtrl";
import bundle from '@ohos.bundle';
......@@ -204,6 +209,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
```
### 生命周期接口说明
**表2** 生命周期回调函数介绍
| 接口名 | 描述 |
......@@ -216,6 +222,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
| onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 |
**示例**
开发者需要重写`app.js/app.ets`中相关生命周期回调函数,IDE模板默认生成`onCreate()``onDestroy()`方法,其他方法需要开发者自行实现。
```javascript
......
# 包结构说明
# 应用包结构配置文件的说明
在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册