成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony使用Stage模型和FA模型開發分布式應用時的差別

系統 OpenHarmony
Stage模型中配置文件由FA模型的config.json改為module.json5,同時一些字段名也發生了改變,例如reqPermissions就改為requestPermissions(好像這個區別并不是很起眼,但就是因為之前我有一個朋友在使用Stage模型開發時直接復制了FA模型的請求權限代碼。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

筆者這兩個月一直在折騰分布式應用,并且分別基于API8的FA模型以及API9的Stage模型進行了開發,這兩天總算是基本開發完了,閑下來總結下這兩者的區別,順便跟大家嘮嘮開發時踩過的坑

請求權限

Stage模型中配置文件由FA模型的config.json改為module.json5,同時一些字段名也發生了改變,例如reqPermissions就改為requestPermissions(好像這個區別并不是很起眼,但就是因為之前我有一個朋友在使用Stage模型開發時直接復制了FA模型的請求權限代碼,而我一開始也沒看出來哪里有問題,因為只差了幾個字母,后來我手敲代碼才找到了問題所在??)。

FA

"reqPermissions": [
{
"name": "ohos.permission.DISTRIBUTED_DATASYNC"
}
]

Stage

"requestPermissions": [
{
"name": "ohos.permission.DISTRIBUTED_DATASYNC"
}
]

獲取Context

FA

let context = featureAbility.getContext();

Stage

Stage模型中包含多種Context,比較常用的有AbilityContext和在eTS頁面中訪問Context,更多詳見參考資料[1]。

  • AbilityContext

Stage模型下,每個Ability中都包含了一個Context屬性。

OpenHarmony使用Stage模型和FA模型開發分布式應用時的差別-開源基礎軟件社區

在繼承Ability的類中通過this.context?就可以獲取AbilityContext,從而操作Ability的方法(如startAbility、connectAbility等)。

import Ability from '@ohos.application.Ability'

export default class MainAbility extends Ability {
onCreate(want, launchParam) {
this.context.requestPermissionsFromUser(PERMISSIONS)
}
onWindowStageCreate(windowStage) {
let context = this.context;
}
...
};
  • 在eTS頁面中訪問Context。

接口名

描述

getContext(component: Object): Object

獲取頁面中component所關聯的Context對象。

// 獲取當前component關聯的Context
let context = getContext(this) as any

啟動Ability

FA

featureAbility.startAbility({
want: {
bundleName: 'com.haoc.distributevideoplayer',
abilityName: 'com.haoc.distributevideoplayer.MainAbility',
deviceId: deviceId,
parameters: {
isFA: 'FA'
}
}
})

Stage

context.startAbility({
bundleName: 'com.haoc.distributevideoplayer',
abilityName: 'EntryAbility',
deviceId: deviceId,
parameters: {
isFA: 'FA'
}
})

1.Stage模型不再使用featureAbility接口,而需要先獲取當前Ability的上下文,再由AbilityContext調用startAbility方法。

2.相比FA模型少了一對{}括號。

3.MainAbility改名為EntryAbility,且abilityName不再是由package + Ability name組成。

結語

由于開發時部分接口在API9以上才提供,所以需要將應用API升級到9。但其實API9也提供了FA模型,只需要在API8的基礎上進行小部分修改即可,那筆者為何還花費大量精力去折騰Stage模型呢?一個是想體驗一下這兩者在開發上的差別,另一個是未來將不再主推FA模型,現在學習的成本沒有以后的成本高。筆者在開發時還發現許多接口將被廢棄,例如Ability,將會用UIAbility代替,不過接口基本上不會有很大改變,都是改個名字、加個參數之類。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-04-24 16:00:03

Ability鴻蒙

2022-10-27 16:01:41

AbilityStage模型FA模型

2023-10-26 18:10:43

分布式并行技術系統

2022-11-08 15:48:35

應用開發音樂播放器

2022-02-17 18:08:04

OpenHarmon應用開發鴻蒙

2021-02-01 09:35:53

關系型數據庫模型

2014-06-30 14:20:05

NoSQL數據庫

2023-02-20 15:38:38

2023-02-20 15:29:14

分布式相機鴻蒙

2023-02-21 16:41:41

分布式相機鴻蒙

2023-11-02 09:33:31

Go語言Raft算法

2020-09-23 22:36:27

分布式架構系統

2023-11-01 20:10:53

分布式并行技術

2022-08-29 08:40:00

數據模型

2021-07-28 08:39:25

分布式架構系統

2017-06-29 13:29:34

大數據PAI機器學習

2022-06-20 15:32:55

Stage模型分布式開發

2022-04-08 11:08:17

分布式數據接口同步機制

2010-08-12 17:56:58

ibmdwRational

2018-12-14 10:06:22

緩存分布式系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情五月综合 | 五月激情婷婷网 | 日韩欧美精品在线 | 欧美一区二区三区久久精品 | 91欧美精品 | 欧美一级免费观看 | 久久久久久久久久久久91 | 午夜网| 99九九视频| 国产精品视频一区二区三区不卡 | www国产成人免费观看视频,深夜成人网 | 欧美一区免费在线观看 | 欧美成ee人免费视频 | 99久久国产综合精品麻豆 | 国产三级电影网站 | 亚洲a视频| 国产精品美女 | 一本岛道一二三不卡区 | 日韩和的一区二在线 | 国产精品永久久久久久久www | 99视频在线免费观看 | 国产福利资源在线 | 久久精品亚洲欧美日韩精品中文字幕 | 亚洲午夜精品久久久久久app | 日本一二三区电影 | 九九色九九 | 三a毛片| 久久久精品 | 亚洲成人黄色 | 91视频一区二区 | 日韩欧美国产精品 | 久久久久久国 | 欧美一区二区三区高清视频 | 日本不卡免费新一二三区 | 国产专区免费 | 蜜桃视频在线观看免费视频网站www | 精品美女在线观看视频在线观看 | 在线免费黄色小视频 | 中文字幕免费观看 | 亚洲一区二区三区免费 | 久久一级|