FA模型訪問Stage模型DataShareExtensionAbility
概述
無論FA模型還是Stage模型,數(shù)據(jù)讀寫功能都包含客戶端和服務(wù)端兩部分。
- FA模型中,客戶端是由DataAbilityHelper提供對(duì)外接口,服務(wù)端是由DataAbility提供數(shù)據(jù)庫的讀寫服務(wù)。
- Stage模型中,客戶端是由DataShareHelper提供對(duì)外接口,服務(wù)端是由DataShareExtensionAbility提供數(shù)據(jù)庫的讀寫服務(wù)。
- 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
服務(wù)端由FA模型升級(jí)到Stage模型后,會(huì)導(dǎo)致FA模型的客戶端在API 9(含)之后的版本上無法訪問服務(wù)端。
為了解決上述問題,系統(tǒng)在框架側(cè)提供了一個(gè)解決方案,讓開發(fā)者平滑過渡到API 9(含)之后的版本。
基本原理
一種兼容方法是DataAbilityHelper根據(jù)傳入的URI的前綴是DataAbility還是DataShare來決定是否調(diào)DataShareHelper的接口。但是這種方法需要開發(fā)者修改原客戶端代碼的URI,做不到無感知切換。
因此DataAbilityHelper不能僅依賴URI的前綴決定訪問DataAbility還是DataShareExtensionAbility,系統(tǒng)采用的方法是:
- 先按照傳入的URI拉起DataAbility;如果拉起失敗,再將傳入的URI的前綴轉(zhuǎn)換成DataShare再去嘗試?yán)餌ataShareExtensionAbility。
- 如果URI無對(duì)應(yīng)的DataAbility和DataShareExtensionAbility,則拉起失敗;反之,必定會(huì)拉起DataAbility或者DataShareExtensionAbility。
約束與限制
- 由DataAbility切換到DataShareExtensionAbility時(shí),只能修改URI的前綴,不能修改URI的其他部分。

- DataShareHelper并沒有實(shí)現(xiàn)原DataAbilityHelper對(duì)外API接口的所有功能,因此有部分接口是無法兼容的,具體如表1所示。
表1 FA模型訪問stage模型DataShareExtensionAbility接口支持情況
接口HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 | DataAbilityHelper是否提供 | DataShareHelper是否提供 | 是否兼容 |
|---|---|---|---|
| on | 是 | 是 | 是 |
| off | 是 | 是 | 是 |
| notifyChange | 是 | 是 | 是 |
| insert | 是 | 是 | 是 |
| delete | 是 | 是 | 是 |
| query | 是 | 是 | 是 |
| update | 是 | 是 | 是 |
| batchInsert | 是 | 是 | 是 |
| getType | 是 | 否 | 否 |
| getFileTypes | 是 | 否 | 否 |
| normalizeUri | 是 | 是 | 是 |
| denormalizeUri | 是 | 是 | 是 |
| openFile | 是 | 否 | 否 |
| call | 是 | 否 | 否 |
| executeBatch | 是 | 否 | 否 |
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
接口
+關(guān)注
關(guān)注
33文章
9519瀏覽量
157018 -
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
18421 -
模型
+關(guān)注
關(guān)注
1文章
3751瀏覽量
52099 -
鴻蒙
+關(guān)注
關(guān)注
60文章
2963瀏覽量
45883
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
KaihongOS操作系統(tǒng)FA模型與Stage模型介紹
應(yīng)用能力和系統(tǒng)管控成本。
Ability與UI分離、嚴(yán)格的后臺(tái)管控、基于場(chǎng)景的服務(wù)機(jī)制及單進(jìn)程模型等特點(diǎn),使得Stage模型非常適合
發(fā)表于 04-24 07:27
FA模型綁定Stage模型ServiceExtensionAbility介紹
FA模型綁定Stage模型ServiceExtensionAbility
本文介紹FA模型的三
發(fā)表于 06-04 07:55
FA模型訪問Stage模型DataShareExtensionAbility說明
DataShareExtensionAbility提供數(shù)據(jù)庫的讀寫服務(wù)。
服務(wù)端由FA模型升級(jí)到Stag
發(fā)表于 06-04 07:53
從FA模型切換到Stage模型時(shí):module的切換說明
見下列表格。
表1 FA模型module標(biāo)簽與Stage模型module標(biāo)簽差異對(duì)比
FA標(biāo)簽標(biāo)簽說明對(duì)應(yīng)的
發(fā)表于 06-05 08:16
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型啟動(dòng)Stage模型UIAbility
本文介紹FA模型的三種應(yīng)用組件如何啟動(dòng)Stage模型的UIAbility組件。
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型綁定Stage模型ServiceExtensionAbility
本文介紹FA模型的三種應(yīng)用組件如何綁定Stage模型的ServiceExtensionAbility組件。
鴻蒙開發(fā)Ability Kit程序框架服務(wù):Stage模型啟動(dòng)FA模型PageAbility
本小節(jié)介紹Stage模型的兩種應(yīng)用組件如何啟動(dòng)FA模型的PageAbility組件。
鴻蒙開發(fā)Ability Kit程序框架服務(wù):Stage模型綁定FA模型ServiceAbility
本小節(jié)介紹Stage模型的兩種應(yīng)用組件如何綁定FA模型ServiceAbility組件。
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型指導(dǎo) module的切換
從FA模型切換到Stage模型時(shí),開發(fā)者需要將config.json文件module標(biāo)簽下的配置遷移到module.json5配置文件mod
鴻蒙開發(fā)Ability Kit程序框架服務(wù):DataAbility切換 組件切換
FA模型中的DataAbility對(duì)應(yīng)Stage模型中的DataShareExtensionAbility。
鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型訪問Stage模型DataShareExtensionAbility
評(píng)論