提交 4f2e33ee 编写于 作者: R RayShih

modify application-dev-guide

Signed-off-by: NRayShih <shirui721@huawei.com>
上级 c7ab874d
...@@ -195,7 +195,7 @@ OpenHarmony支持如下几种系统类型: ...@@ -195,7 +195,7 @@ OpenHarmony支持如下几种系统类型:
</tr> </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> <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>
<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>
<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 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> </td>
...@@ -301,7 +301,7 @@ OpenHarmony支持如下几种系统类型: ...@@ -301,7 +301,7 @@ OpenHarmony支持如下几种系统类型:
</tr> </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> <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>
<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>
<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 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> </td>
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
​ Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。 ​ 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 - 第一种形态为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模型。从API 9开始,Ability框架引入了Stage模型作为第二种应用框架形态,Stage模型将Ability分为Ability和ExtensionAbility两大类,其中ExtensionAbility又被扩展为ServiceExtensionAbility、FormExtensionAbility、DataShareExtensionAbility等等一系列ExtensionAbility,以便满足更多的使用场景。
​ Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。下表给出了两种模型在设计上的差异: ​ Stage模型的设计,主要是为了方便开发者更加方便地开发出分布式环境下的复杂应用。下表给出了两种模型在设计上的差异:
......
# FA模型综述 # FA模型综述
## 整体架构 ## 整体架构
OpenHarmony用户程序的开发本质上就是开发Ability,OpenHarmony系统也是通过调度Ability,通过系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。 OpenHarmony用户程序的开发本质上就是开发Ability。OpenHarmony系统是通过对Ability调度,结合系统提供的一致性调度契约对Ability进行生命周期管理,从而实现对用户程序的调度。
Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为PageAbility、ServiceAbility、DataAbility、FormAbility几种类型。其中: Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为PageAbility、ServiceAbility、DataAbility、FormAbility几种类型。其中:
- PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例 - PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例
- ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行 - ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行
- DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行 - DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行
- FormAbility是卡片Ability,是一种界面展示形式。 - FormAbility是卡片Ability,是一种界面展示形式。
## 应用包结构 ## 应用包结构
...@@ -14,7 +14,7 @@ Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为Pag ...@@ -14,7 +14,7 @@ Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分为Pag
![fa-package-info](figures/fa-package-info.png) ![fa-package-info](figures/fa-package-info.png)
应用包结构的配置请参见[包结构说明](../quick-start/package-structure.md) 应用包结构的配置请参见[应用包结构配置文件的说明](../quick-start/package-structure.md)
## 生命周期 ## 生命周期
......
...@@ -2,28 +2,30 @@ ...@@ -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的生命周期 ### 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) ![PageAbility-Lifecycle](figures/page-ability-lifecycle.png)
**Ability生命周期状态说明:** **Ability生命周期状态说明:**
- **UNINITIALIZED**:未初始状态,为临时状态,Ability被创建后会由UNINITIALIZED状态进入INITIAL状态。 - **UNINITIALIZED**:未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。
- **INITIAL**:初始化状态,也表示停止状态,表示当前Ability未运行,Ability被启动后由INITIAL态进入INACTIVE状态。 - **INITIAL**:初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入INACTIVE状态。
- **INACTIVE**:失去焦点状态,表示当前窗口已显示但是无焦点状态。 - **INACTIVE**:失去焦点状态,表示当前窗口已显示但是无焦点状态。
- **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点。 - **ACTIVE**:前台激活状态,表示当前窗口已显示,并获取焦点。
- **BACKGROUND**:后台状态,表示当前Ability退到后台,Ability在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。 - **BACKGROUND**:后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。
**PageAbility生命周期回调与生命周期状态的关系如下图所示:** **PageAbility生命周期回调与生命周期状态的关系如下图所示:**
...@@ -100,6 +102,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写 ...@@ -100,6 +102,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
``` ```
`want`参数也可以使用parameters参数,使用key-value的方式输入。 `want`参数也可以使用parameters参数,使用key-value的方式输入。
**示例** **示例**
```javascript ```javascript
...@@ -148,6 +151,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写 ...@@ -148,6 +151,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
``` ```
从DeviceManager获取`deviceId`,具体示例代码如下: 从DeviceManager获取`deviceId`,具体示例代码如下:
```ts ```ts
import deviceManager from '@ohos.distributedHardware.deviceManager'; import deviceManager from '@ohos.distributedHardware.deviceManager';
let dmClass; let dmClass;
...@@ -167,6 +171,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写 ...@@ -167,6 +171,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
``` ```
在跨设备场景下,需要向用户申请数据同步的权限。具体示例代码如下: 在跨设备场景下,需要向用户申请数据同步的权限。具体示例代码如下:
```ts ```ts
import abilityAccessCtrl from "@ohos.abilityAccessCtrl"; import abilityAccessCtrl from "@ohos.abilityAccessCtrl";
import bundle from '@ohos.bundle'; import bundle from '@ohos.bundle';
...@@ -204,6 +209,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写 ...@@ -204,6 +209,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
``` ```
### 生命周期接口说明 ### 生命周期接口说明
**表2** 生命周期回调函数介绍 **表2** 生命周期回调函数介绍
| 接口名 | 描述 | | 接口名 | 描述 |
...@@ -216,6 +222,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写 ...@@ -216,6 +222,7 @@ PageAbility提供命周期回调,开发者可以在`app.js/app.ets`中重写
| onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 | | onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 |
**示例** **示例**
开发者需要重写`app.js/app.ets`中相关生命周期回调函数,IDE模板默认生成`onCreate()``onDestroy()`方法,其他方法需要开发者自行实现。 开发者需要重写`app.js/app.ets`中相关生命周期回调函数,IDE模板默认生成`onCreate()``onDestroy()`方法,其他方法需要开发者自行实现。
```javascript ```javascript
......
# 包结构说明 # 应用包结构配置文件的说明
在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。 在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册