HarmonyOS实战—初识原子卡片服务开发
官网文档传送口目录一、鸿蒙OS系统定义:二、原子化服务开发历程:1.什么是原子化服务:2.原子化服务特征:随处可及:服务直达:跨设备:3.服务中心与原子化服务:4.原子化服务的流转:5.流转触发的方式:6.流转的技术方案:7.原子化服务分享:8.原子化服务使用场景:三、服务卡片:概述:运作机制:卡片开发说明:1.开发接口说明:2.Java卡片与JS卡片区别:四、Harmony上手开发流程:开发准备
目录
一、鸿蒙OS系统定义:
HarmonyOS 是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS 提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
二、原子化服务开发历程:
HarmonyOS除支持传统方式的需要安装的应用外,还支持提供特定功能的免安装的应用(即原子化服务),供用户在合适的场景、合适的设备上便捷使用。
1.什么是原子化服务:
原子化服务就是提供特定功能的免安装的应用!!!
原子化服务是HarmonyOS提供的一种面向未来的服务提供方式,是有独立入口的(用户可通过点击方式直接触发)、免安装的(无需显式安装,由系统程序框架后台安装后即可使用)、可为用户提供一个或多个便捷服务的用户应用程序形态。
原子化服务基于HarmonyOS API开发,支持运行在1+8+N设备上,供用户在合适的场景、合适的设备上便捷使用。原子化服务相对于传统方式的需要安装的应用形态更加轻量,同时提供更丰富的入口、更精准的分发。
原子化服务由1个或多个HAP包组成,1个HAP包对应1个FA或1个PA。每个FA或PA均可独立运行,完成1个特定功能;1个或多个功能(对应FA或PA)完成1个特定的便捷服务。

2.原子化服务特征:
随处可及:
- 服务发现:原子化服务可在服务中心发现并使用。
- 智能推荐:原子化服务可以基于合适场景被主动推荐给用户使用;用户可在服务中心和小艺建议中发现系统推荐的服务。
服务直达:
- 原子化服务支持免安装使用。
- 服务卡片:支持用户无需打开原子化服务便可获取服务内重要信息的展示和动态变化,如天气、关键事务备忘、热点新闻列表。
跨设备:
- 原子化服务支持运行在1+8+N设备上,如手机、平板等设备。
- 支持跨设备分享:例如接入华为分享后,用户可分享原子化服务给好友,好友确认后打开分享的服务。
- 支持跨端迁移:例如手机上未完成的邮件,迁移到平板继续编辑。
- 支持多端协同:例如手机用作文档翻页和批注,配合智慧屏显示完成分布式办公;手机作为手柄,与智慧屏配合玩游戏。
3.服务中心与原子化服务:
HarmonyOS服务中心:为用户提供统一的原子化服务查看、搜索、收藏和管理功能。

原子化服务在服务中心以服务卡片的形式展示,用户可将服务中心的服务卡片添加到桌面中快捷访问。

服务中心入口:以手机为例,通过屏幕左下角或右下角向侧上方滑动进入服务中心。
常用服务:"常用服务"涵盖用户常用的本地服务和云端推送的服务,为您提供贴心便捷的服务体验。
我的收藏:“我的收藏”中收录您所订阅的服务卡片;通过长按卡片可将服务添加到桌面、取消收藏。
服务发现:您还可以在“发现”版块中查找和浏览所有的服务卡片。服务以卡片(卡片由图标、名称、描述、快照组成)的形式向用户展示。轻点卡片,可以选择将卡片添加到收藏或添加到桌面,随时随地查看信息获取服务。
4.原子化服务的流转:
流转在HarmonyOS中泛指涉及多端的分布式操作。
流转能力打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。
5.流转触发的方式:
用户触发流转有2种方式:系统推荐流转和用户手动流转。
- 系统推荐流转:用户使用应用程序时,所处环境中存在使用体验更优的可选设备,则系统自动为用户推荐该设备,用户可确认是否启动流转。

- 用户手动流转:用户可以手动选择合适的设备进行流转。用户点击图标后,会调起系统提供的流转面板。面板中会展示出用户应用程序的信息及可流转的设备,引导用户进行后续的流转操作。

6.流转的技术方案:
流转有2种技术方案来满足不同的业务场景:
- 跨端迁移:
指在A端运行的用户应用程序,迁移到B端上并从迁移时刻A端状态继续运行,然后A端用户应用程序退出。
- 多端协同:
指多端上的不同FA/PA同时运行、或者接替运行实现完整的业务;或者,多端上的相同FA/PA同时运行实现完整的业务。
7.原子化服务分享:
通过分享的方式,将原子化服务分享到其它设备上,用户确认后可直接免安装启动服务。
华为分享:用户可在原子化服务内选择分享,打开“华为分享”开关后,将原子化服务分享给附近同样打开了“华为分享”开关的好友,好友点击确认后直接启动服务。

8.原子化服务使用场景:
- 释放手机,让用户在更合适的设备上享受服务
- 大小屏互动协作
三、服务卡片:
概述:
服务卡片(以下简称“卡片”)是FA的一种界面展示形式,将FA的重要信息或操作前置到卡片,以达到服务直达,减少体验层级的目的。
卡片常用于嵌入到其他应用(当前只支持系统应用)中作为其界面的一部分显示,并支持拉起页面,发送消息等基础的交互功能。卡片使用方负责显示卡片。
运作机制:

卡片开发说明:
1.开发接口说明:
HarmonyOS中的服务卡片为卡片提供方开发者提供以下接口能力:
|
类名 |
接口名 |
描述 |
|---|---|---|
|
Ability |
ProviderFormInfo onCreateForm(Intent intent) |
卡片提供方接收创建卡片通知接口。 |
|
void onUpdateForm(long formId) |
卡片提供方接收更新卡片通知接口。 |
|
|
void onDeleteForm(long formId) |
卡片提供方接收删除卡片通知接口。 |
|
|
void onTriggerFormEvent(long formId, String message) |
卡片提供方处理卡片事件接口(JS卡片使用)。 |
|
|
boolean updateForm(long formId, ComponentProvider component) |
卡片提供方主动更新卡片(Java卡片使用)。 |
|
|
boolean updateForm(long formId, FormBindingData formBindingData) |
卡片提供方主动更新卡片(JS卡片使用),仅更新formBindingData中携带的信息,卡片中其余信息保持不变。 |
|
|
void onCastTempForm(long formId) |
卡片提供方接收临时卡片转常态卡片通知。 |
|
|
void onEventNotify(Map<Long, Integer> formEvents) |
卡片提供方接收到事件通知,其中Ability.FORM_VISIBLE表示卡片可见通知, Ability.FORM_INVISIBLE表示卡片不可见通知。 |
|
|
FormState onAcquireFormState(Intent intent) |
卡片提供方接收查询卡片状态通知接口。默认返回卡片初始状态。 |
|
|
ProviderFormInfo |
ProviderFormInfo(int resId, Context context) |
Java卡片返回对象构造函数。 |
|
ProviderFormInfo() |
JS卡片返回对象构造函数。 |
|
|
void mergeActions(ComponentProvider componentProviderActions) |
在提供方侧调用该接口,将开发者在ComponentProvider中设置的actions配置数据合并到当前对象中。 |
|
|
void setJsBindingData(FormBindingData data) |
设置JS卡片的内容信息(JS卡片使用)。 |
其中,onEventNotify仅系统应用才会回调,其他接口回调时机如下:

2.Java卡片与JS卡片区别:
|
场景 |
Java卡片 |
JS卡片 |
支持的版本 |
|---|---|---|---|
|
实时刷新(类似时钟) |
Java使用ComponentProvider做实时刷新代价比较大 |
JS可以做到端侧刷新,但是需要定制化组件 |
HarmonyOS 2.0及以上 |
|
开发方式 |
Java UI在卡片提供方需要同时对数据和组件进行处理,生成ComponentProvider远端渲染 |
JS卡片在使用方加载渲染,提供方只要处理数据、组件和逻辑分离 |
HarmonyOS 2.0及以上 |
|
组件支持 |
Text、Image、DirectionalLayout、PositionLayout、DependentLayout |
div、list、list-item、swiper、 stack、image、text、span、progress、button(定制:chart 、clock、calendar) |
HarmonyOS 2.0及以上 |
|
卡片内动效 |
不支持 |
暂不开放 |
HarmonyOS 2.0及以上 |
|
阴影模糊 |
不支持 |
支持 |
HarmonyOS 2.0及以上 |
|
动态适应布局 |
不支持 |
支持 |
HarmonyOS 2.0及以上 |
|
自定义卡片跳转页面 |
不支持 |
支持 |
HarmonyOS 2.0及以上 |
总结:
- Java卡片:适合作为一个直达入口,没有复杂的页面和事件。
- JS卡片:适合有复杂界面的卡片。
四、Harmony上手开发流程:

开发准备:
第一步:注册华为开发者账号:
官网:https://www.harmonyos.com/cn/home/

进行账号注册:

实名认证:

第二步:安装开发工具:
下载工具:
传送口:https://www.harmonyos.com/cn/develop


安装:
下载完成后进行解压,安装(下一步下一步就可以,注意安装路径不要有中文!!!):



等待安装完成!!!

检查SDK是否安装成功:


第三步:DevEco Studio常见设置:





修改主题:

设置字体大小:

取消注释斜体,修改注释颜色:
自动导包:

提示忽略大小写:

修改自动提示快捷键:

第四步:项目结构介绍:
DevEco Stusio项目结构:

项目管理工具gradle



【本文正在参与"有奖征文|HarmoneyOS征文大赛"活动】
传送口:https://marketing.csdn.net/p/ad3879b53f4b8b31db27382b5fc65bbc
更多推荐



所有评论(0)