DataAbility切換
FA模型中的DataAbility對應Stage模型中的DataShareExtensionAbility。
與ServiceExtensionAbility類似,Stage模型下的DataShareExtensionAbility為系統API,只有系統應用才可以創建。因此,FA模型的DataAbility的切換,對于系統應用和三方應用策略有所不同。下面分別介紹這兩種場景。
系統應用DataAbility切換至DataShareExtensionAbility
遷移步驟和PageAbility基本一致。
- 在Stage應用中創建DataShareExtensionAbility。
- 將FA應用中DataAbility的業務代碼遷移到新創建的DataShareExtensionAbility中。 DataAbility和DataShareExtensionAbility生命周期對比見下表。
- 開發前請熟悉鴻蒙開發指導文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]FA的DataAbility Stage的DataShareExtensionAbility 對比描述 onInitialized?(info: AbilityInfo): void onCreate?(want: Want, callback: AsyncCallback): void 兩者調用時機一致,函數名即入參都不一樣,Stage模型下增加了入參want以便開發者在創建時獲取參數。 update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void update?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback): void 兩者意義和調用時機一致,參數順序和參數類型略有不同,需要簡單改造。 query?(uri: string, columns: Array, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void query?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback): void; 兩者意義和調用時機一致,參數順序和參數類型略有不同,需要簡單改造。 delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): void delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback): 兩者意義和調用時機一致,參數類型略有不同,需要簡單改造。 normalizeUri?(uri: string, callback: AsyncCallback): void normalizeUri?(uri: string, callback: AsyncCallback): void 兩者意義和調用時機一致,參數也一致。 batchInsert?(uri: string, valueBuckets: Array, callback: AsyncCallback): void batchInsert?(uri: string, values: Array, callback: AsyncCallback): void 兩者意義和調用時機一致,參數類型略有不同,需要簡單改造。 denormalizeUri?(uri: string, callback: AsyncCallback): void denormalizeUri?(uri: string, callback: AsyncCallback): void 兩者意義和調用時機一致,參數也一致。 insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback): void insert?(uri: string, value: ValuesBucket, callback: AsyncCallback): void 兩者意義和調用時機一致,參數類型略有不同,需要簡單改造。 openFile?(uri: string, mode: string, callback: AsyncCallback): void NA Stage模型不支持uri跨進程訪問,建議通過[want攜帶FD和文件信息]進行跨進程文件訪問。 getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): void NA Stage模型不支持uri跨進程訪問,建議通過[want攜帶FD和文件信息]進行跨進程文件訪問。 getType?(uri: string, callback: AsyncCallback): void NA Stage模型不支持uri跨進程訪問,建議通過[want攜帶FD和文件信息]進行跨進程文件訪問。 executeBatch?(ops: Array, callback: AsyncCallback>): void NA DataShareExtensonAbility不提供該接口,開發者需根據業務功能重新實現。 call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback): void NA HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
DataShareExtensonAbility不提供該接口,開發者需根據業務功能重新實現。
三方應用DataAbility改造為公共模塊
Stage模型三方應用不能對其他三方提供數據,應用需要根據具體業務選擇切換方案。
DataAbility業務類型 | 切換DataShareExtension策略 |
---|---|
對三方提供數據 | 需根據業務場景匹配到系統對應的場景化[ExtensionAbility]。 |
應用內使用的數據 | 對應用內其他組件提供數據,建議提取公共模塊。 |
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
組件
+關注
關注
1文章
512瀏覽量
17840 -
鴻蒙
+關注
關注
57文章
2362瀏覽量
42881
發布評論請先 登錄
相關推薦
鴻蒙開發Ability Kit程序框架服務:API切換概述 API切換
FA模型和Stage模型由于線程模型和進程模型的差異,部分接口僅在FA模型下才能使用,針對這部分接口在SDK的接口中有FAModelOnly的標記,用于提醒開發者這部分接口僅能在FA模型下
鴻蒙開發Ability Kit程序框架服務:PageAbility切換 組件切換
FA模型中PageAbility對應Stage模型中的UIAbility,PageAbility切換為UIAbility的方法如下。
鴻蒙開發Ability Kit程序框架服務:ServiceAbility切換 組件切換
應用才可以創建。因此,FA模型的ServiceAbility的切換,對于系統應用和三方應用策略有所不同。下面分別介紹這兩種場景。
鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 module的切換
從FA模型切換到Stage模型時,開發者需要將config.json文件module標簽下的配置遷移到module.json5配置文件module標簽下,具體差異見下列表格。
鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型指導 app和deviceConfig的切換
為了便于開發者維護應用級別的屬性配置,Stage模型將config.json中的app和deviceConfig標簽提取到了app.json5中進行配置,并對部分標簽名稱進行了修改,具體差異見下表。
鴻蒙開發Ability Kit程序框架服務:FA模型與Stage模型應用組件互通綜述
FA模型與Stage模型是兩套不同的應用模型,他們擁有各自的組件。FA模型提供三種應用組件,分別是PageAbility、ServiceAbility和DataAbility。Stage模型提供了兩種應用
鴻蒙開發組件:DataAbility權限控制
DataAbility提供數據服務,并不是所有的Ability都有權限讀寫它,DataAbility有一套權限控制機制來保證數據安全。分為靜態權限控制和動態權限控制兩部分。
鴻蒙Ability Kit(程序框架服務)【應用啟動框架AppStartup】
`AppStartup`提供了一種更加簡單高效的初始化組件的方式,支持異步初始化組件加速應用的啟動時間。使用啟動框架應用開發者只需要分別為待初始化的
鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】
本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實現了Ability與ServiceExtensionAbility之間的通信。
鴻蒙Ability Kit(程序框架服務)【ExtensionAbility組件】
ExtensionAbility組件是基于特定場景(例如服務卡片、輸入法等)提供的應用組件,以便滿足更多的使用場景。
鴻蒙Ability Kit(程序框架服務)【ServiceExtensionAbility】
[ServiceExtensionAbility]是SERVICE類型的ExtensionAbility組件,提供后臺服務能力,其內部持有了一個[ServiceExtensionContext],通過[ServiceExtensionContext]提供了豐富的接口供外部
評論