分布式任务调度开发概述

在HarmonyOS中,分布式任务调度平台对搭载HarmonyOS的多设备构筑的“超级虚拟终端”提供统一的组件管理能力,为应用定义统一的能力基线、接口形式、数据结构、服务描述语言,屏蔽硬件差异;支持远程启动、远程调用、业务无缝迁移等分布式任务。

分布式任务调度平台在底层实现Ability(分布式任务调度的基本组件)跨设备的启动/关闭、连接及断开连接以及迁移等能力,实现跨设备的组件管理:

  • 启动和关闭:向开发者提供管理远程Ability的能力,即支持启动Page模板的Ability,以及启动、关闭Service和Data模板的Ability。
  • 连接和断开连接:向开发者提供跨设备控制服务(Service和Data模板的Ability)的能力,开发者可以通过与远程服务连接及断开连接实现获取或注销跨设备管理服务的对象,达到和本地一致的服务调度。
  • 迁移能力:向开发者提供跨设备业务的无缝迁移能力,开发者可以通过调用Page模板Ability的迁移接口,将本地业务无缝迁移到指定设备中,打通设备间壁垒。

约束与限制

  • 开发者需要在Intent中设置支持分布式的标记(例如:Intent.FLAG_ABILITYSLICE_MULTI_DEVICE表示该应用支持分布式调度),否则将无法获得分布式能力。
  • 开发者通过在config.json中的reqPermissions字段里添加多设备协同访问的权限申请:三方应用使用{"name": "ohos.permission.DISTRIBUTED_DATASYNC"}。
  • PA(Particle Ability,Service和Data模板的Ability)的调用支持连接及断开连接、启动及关闭这四类行为,在进行调度时:
    • 开发者必须在Intent中指定PA对应的bundleName和abilityName。
    • 当开发者需要跨设备启动、关闭或连接PA时,需要在Intent中指定对端设备的deviceId。开发者可通过如设备管理类DeviceManager提供的getDeviceList获取指定条件下匿名化处理的设备列表,实现对指定设备PA的启动/关闭以及连接管理。
  • FA(Feature Ability,Page模板的Ability)的调用支持启动和迁移行为,在进行调度时:
    • 当启动FA时,需要开发者在Intent中指定对端设备的deviceId、bundleName和abilityName。
    • FA的迁移实现相同bundleName和abilityName的FA跨设备迁移,因此需要指定迁移设备的deviceId。
  • DevEco Studio远程模拟设备的功能无法调测分布式任务调度,需要在真机环境下进行测试。

results matching ""

    No results matching ""