鸿蒙分布式任务调度技术教程

描述

本文是对分布式任务调度的一个技术教程,以一个简单的案例来讲解。

正文部分分为两个部分:

第一部分是对分布式任务调度的简单概述

第二部分是分布式任务调度的一个简单案例(跨设备 FA 的拉起)

分布式任务调度的简单概述

Ability 可以分为 FA(Feature Ability)和 PA(Particle Ability)两种类型。

①FA 支持 Page Ability

Page 模板:FA 唯一支持的模板,用于提供与用户交互的能力。一个 Page 实例可以包含一组相关页面,每个页面用一个 AbilitySlice 实例表示。

②PA 支持 Service Ability 和 Data Ability

Service 模板:用于提供后台运行任务的能力。Data 模板:用于对外部提供统一的数据访问抽象。

鸿蒙系统

根据 Ability 模板及意图的不同,分布式任务调度向开发者提供以下六种能力:

启动远程 FA

启动远程 PA

关闭远程 PA

连接远程 PA

断开连接远程 PA

FA 跨设备迁移

“跨设备 FA 的拉起”的教程

①创建项目

DevEco Studio 下载安装成功后,打开 DevEco Studio,点击左上角的 File,点击 New,再选择 New Project。

选择 Empty Ability(Java),然后点击 Next,给项目命名 distribute_FA,选择设备类型 Phone,最后点击 Finish。

 

②申请权限

在 entry>src>main>config.json 文件中最下方"launchType": "standard"后面的中括号后且在上方的"module"的花括号内添加以下代码添加所需要的分布式权限:

"reqPermissions": [       {         "name": "ohos.permission.DISTRIBUTED_DATASYNC"       },       {         "name": "ohos.permission.GET_DISTRIBUTED_DEVICE_INFO"       }     ]

 

第一个权限是允许不同设备间的数据交换(敏感权限)。第二个权限是允许获取分布式组网内的设备列表和设备信息(非敏感权限)。应用在使用对应服务的能力或数据时,需要申请对应权限。

已在 config.json 文件中声明的非敏感权限,会在应用安装时自动授予,该类权限的授权方式为系统授权(system_grant)。

敏感权限需要应用动态申请,通过运行时发送弹窗的方式请求用户授权,该类权限的授权方式为用户授权(user_grant)。

在 entry>src>main>Java>MainAbility 文件里添加敏感权限(非敏感权限在该文件里可加可不加),在 onStart 函数里添加以下代码:

 

requestPermissionsFromUser(new String[]{"ohos.permission.DISTRIBUTED_DATASYNC"},0);

 

如果添加的权限比较多可以像这样新建一个字符串数组,后面的 0 是请求码(requestCode),是用来标识请求的来源(这个值任自己设定)。

③界面布局

 

在 entry>src>main>resources>base>layout>ability_main.xml 文件里添加一个按钮组件,加入唯一标识符 id 并配置好其他相应的属性,代码如下:

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分