0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发Ability Kit程序框架服务:DataAbility切换 组件切换

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-28 14:08 次阅读

DataAbility切换

FA模型中的DataAbility对应Stage模型中的DataShareExtensionAbility。

与ServiceExtensionAbility类似,Stage模型下的DataShareExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的DataAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。

系统应用DataAbility切换至DataShareExtensionAbility

迁移步骤和PageAbility基本一致。

  1. 在Stage应用中创建DataShareExtensionAbility。
  2. 将FA应用中DataAbility的业务代码迁移到新创建的DataShareExtensionAbility中。 DataAbility和DataShareExtensionAbility生命周期对比见下表。
  3. 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
    FA的DataAbilityStage的DataShareExtensionAbility对比描述
    onInitialized?(info: AbilityInfo): voidonCreate?(want: Want, callback: AsyncCallback): void两者调用时机一致,函数名即入参都不一样,Stage模型下增加了入参want以便开发者在创建时获取参数
    update?(uri: string, valueBucket: rdb.ValuesBucket, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voidupdate?(uri: string, predicates: dataSharePredicates.DataSharePredicates, value: ValuesBucket, callback: AsyncCallback): void两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。
    query?(uri: string, columns: Array, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voidquery?(uri: string, predicates: dataSharePredicates.DataSharePredicates, columns: Array, callback: AsyncCallback): void;两者意义和调用时机一致,参数顺序和参数类型略有不同,需要简单改造。
    delete?(uri: string, predicates: dataAbility.DataAbilityPredicates, callback: AsyncCallback): voiddelete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback):两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    normalizeUri?(uri: string, callback: AsyncCallback): voidnormalizeUri?(uri: string, callback: AsyncCallback): void两者意义和调用时机一致,参数也一致。
    batchInsert?(uri: string, valueBuckets: Array, callback: AsyncCallback): voidbatchInsert?(uri: string, values: Array, callback: AsyncCallback): void两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    denormalizeUri?(uri: string, callback: AsyncCallback): voiddenormalizeUri?(uri: string, callback: AsyncCallback): void两者意义和调用时机一致,参数也一致。
    insert?(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback): voidinsert?(uri: string, value: ValuesBucket, callback: AsyncCallback): void两者意义和调用时机一致,参数类型略有不同,需要简单改造。
    openFile?(uri: string, mode: string, callback: AsyncCallback): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    getFileTypes?(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    getType?(uri: string, callback: AsyncCallback): voidNAStage模型不支持uri跨进程访问,建议通过[want携带FD和文件信息]进行跨进程文件访问。
    executeBatch?(ops: Array, callback: AsyncCallback>): voidNADataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。
    call?(method: string, arg: string, extras: PacMap, callback: AsyncCallback): voidNAHarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿
    DataShareExtensonAbility不提供该接口,开发者需根据业务功能重新实现。

搜狗高速浏览器截图20240326151547.png

三方应用DataAbility改造为公共模块

Stage模型三方应用不能对其他三方提供数据,应用需要根据具体业务选择切换方案。

DataAbility业务类型切换DataShareExtension策略
对三方提供数据需根据业务场景匹配到系统对应的场景化[ExtensionAbility]。
应用内使用的数据对应用内其他组件提供数据,建议提取公共模块。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 组件
    +关注

    关注

    1

    文章

    425

    浏览量

    17661
  • 鸿蒙
    +关注

    关注

    55

    文章

    2103

    浏览量

    42272
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发Ability Kit程序框架服务:API切换概述 API切换

    FA模型和Stage模型由于线程模型和进程模型的差异,部分接口仅在FA模型下才能使用,针对这部分接口在SDK的接口中有FAModelOnly的标记,用于提醒开发者这部分接口仅能在FA模型
    的头像 发表于 06-28 16:23 98次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:API<b class='flag-5'>切换</b>概述 API<b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:PageAbility切换 组件切换

    FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。
    的头像 发表于 06-28 11:38 141次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:PageAbility<b class='flag-5'>切换</b> <b class='flag-5'>组件</b><b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:ServiceAbility切换 组件切换

    应用才可以创建。因此,FA模型的ServiceAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。
    的头像 发表于 06-28 10:24 86次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:ServiceAbility<b class='flag-5'>切换</b> <b class='flag-5'>组件</b><b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 module的切换

    从FA模型切换到Stage模型时,开发者需要将config.json文件module标签下的配置迁移到module.json5配置文件module标签下,具体差异见下列表格。
    的头像 发表于 06-27 14:16 109次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:FA模型<b class='flag-5'>切换</b>Stage模型指导 module的<b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 app和deviceConfig的切换

    为了便于开发者维护应用级别的属性配置,Stage模型将config.json中的app和deviceConfig标签提取到了app.json5中进行配置,并对部分标签名称进行了修改,具体差异见下表。
    的头像 发表于 06-27 10:01 94次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:FA模型<b class='flag-5'>切换</b>Stage模型指导 app和deviceConfig的<b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型概述

    本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型
    的头像 发表于 06-26 14:40 102次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:FA模型<b class='flag-5'>切换</b>Stage模型概述

    鸿蒙开发Ability Kit程序框架服务:FA模型与Stage模型应用组件互通综述

    FA模型与Stage模型是两套不同的应用模型,他们拥有各自的组件。FA模型提供三种应用组件,分别是PageAbility、ServiceAbility和DataAbility。Stage模型提供了两种应用
    的头像 发表于 06-24 16:43 189次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:FA模型与Stage模型应用<b class='flag-5'>组件</b>互通综述

    鸿蒙开发Ability Kit程序框架服务:任务管理

    AbilityRecord:系统服务侧管理一个UIAbility实例的最小单元,对应一个应用侧的UIAbility组件实例。系统服务侧管理UIAbility实例数量上限为512个。
    的头像 发表于 06-24 14:46 120次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:任务管理

    鸿蒙开发组件DataAbility权限控制

    DataAbility提供数据服务,并不是所有的Ability都有权限读写它,DataAbility有一套权限控制机制来保证数据安全。分为静态权限控制和动态权限控制两部分。
    的头像 发表于 06-21 10:30 115次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>组件</b>:<b class='flag-5'>DataAbility</b>权限控制

    鸿蒙开发组件:启动与访问DataAbility

    启动DataAbility会获取一个工具接口类对象(DataAbilityHelper)。
    的头像 发表于 06-20 15:03 114次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>组件</b>:启动与访问<b class='flag-5'>DataAbility</b>

    鸿蒙Ability Kit程序框架服务)【应用启动框架AppStartup】

    `AppStartup`提供了一种更加简单高效的初始化组件的方式,支持异步初始化组件加速应用的启动时间。使用启动框架应用开发者只需要分别为待初始化的
    的头像 发表于 06-10 18:38 390次阅读

    鸿蒙Ability Kit程序框架服务)【Ability与ServiceExtensionAbility通信】

    本示例展示通过[IDL的方式]和 [@ohos.rpc] 等接口实现了Ability与ServiceExtensionAbility之间的通信。
    的头像 发表于 06-05 09:28 249次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【<b class='flag-5'>Ability</b>与ServiceExtensionAbility通信】

    鸿蒙Ability Kit程序框架服务)【UIExtensionAbility】

    [UIExtensionAbility]是UI类型的ExtensionAbility组件,需要与[UIExtensionComponent]一起配合使用,开发者可以在UIAbility的页面中通过
    的头像 发表于 06-05 09:19 743次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【UIExtensionAbility】

    鸿蒙Ability Kit程序框架服务)【UIAbility组件概述】

    UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。
    的头像 发表于 05-30 20:17 163次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【UIAbility<b class='flag-5'>组件</b>概述】

    鸿蒙Ability开发-Stage模型下Ability的创建和使用

    函数 HiLog日志系统可以让应用按照指定类型、指定级别、指定格式字符串打印日志内容,帮助开发者了解应用/服务的运行状态,更好地调试程序。 HiLog提供了debug、info、warn、error以及fatal
    发表于 01-08 15:34