FA模型訪問Stage模型DataShareExtensionAbility
概述
無論FA模型還是Stage模型,數據讀寫功能都包含客戶端和服務端兩部分。
- FA模型中,客戶端是由DataAbilityHelper提供對外接口,服務端是由DataAbility提供數據庫的讀寫服務。
- Stage模型中,客戶端是由DataShareHelper提供對外接口,服務端是由DataShareExtensionAbility提供數據庫的讀寫服務。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
服務端由FA模型升級到Stage模型后,會導致FA模型的客戶端在API 9(含)之后的版本上無法訪問服務端。
為了解決上述問題,系統在框架側提供了一個解決方案,讓開發者平滑過渡到API 9(含)之后的版本。
基本原理
一種兼容方法是DataAbilityHelper根據傳入的URI的前綴是DataAbility還是DataShare來決定是否調DataShareHelper的接口。但是這種方法需要開發者修改原客戶端代碼的URI,做不到無感知切換。
因此DataAbilityHelper不能僅依賴URI的前綴決定訪問DataAbility還是DataShareExtensionAbility,系統采用的方法是:
- 先按照傳入的URI拉起DataAbility;如果拉起失敗,再將傳入的URI的前綴轉換成DataShare再去嘗試拉起DataShareExtensionAbility。
- 如果URI無對應的DataAbility和DataShareExtensionAbility,則拉起失敗;反之,必定會拉起DataAbility或者DataShareExtensionAbility。
約束與限制
- 由DataAbility切換到DataShareExtensionAbility時,只能修改URI的前綴,不能修改URI的其他部分。
- DataShareHelper并沒有實現原DataAbilityHelper對外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 | 是 | 否 | 否 |
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
接口
+關注
關注
33文章
8885瀏覽量
152963 -
框架
+關注
關注
0文章
404瀏覽量
17733 -
模型
+關注
關注
1文章
3464瀏覽量
49814 -
鴻蒙
+關注
關注
57文章
2469瀏覽量
43642
發布評論請先 登錄
相關推薦
KaihongOS操作系統FA模型與Stage模型介紹
應用能力和系統管控成本。
Ability與UI分離、嚴格的后臺管控、基于場景的服務機制及單進程模型等特點,使得Stage模型非常適合
發表于 04-24 07:27
鴻蒙元服務萬能卡片開發-stage模型和fa模型的卡片區別
一、項目類型
Application: 應用開發
Atomic Service:原子化服務開發
這里選擇Empty Ability模板創建項目。
二、
發表于 05-22 14:20
鴻蒙Ability Kit(程序框架服務)【組件啟動規則(Stage模型)】
組件啟動規則(Stage模型) 啟動組件是指一切啟動或連接應用組件的行為: 啟動UIAbility、ServiceExtensionAbility、DataShareExtensionAbility

鴻蒙開發Ability Kit程序框架服務:FA模型綁定Stage模型ServiceExtensionAbility
本文介紹FA模型的三種應用組件如何綁定Stage模型的ServiceExtensionAbility組件。

鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 app和deviceConfig的切換
為了便于開發者維護應用級別的屬性配置,Stage模型將config.json中的app和deviceConfig標簽提取到了app.json5中進行配置,并對部分標簽名稱進行了修改,具體差異見下表。

鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 module的切換
從FA模型切換到Stage模型時,開發者需要將config.json文件module標簽下的配置遷移到module.json5配置文件mod

評論