Appearance
原子化服务
鸿蒙原子化服务:免安装、即搜即用、跨设备流转。
1. 原子化服务概述
1.1 核心特性
| 特性 | 说明 | |---|-|-| | 免安装 | 无需安装,即搜即用 | | 即服务 | 轻量级服务形态 | | 跨设备 | 跨设备无缝流转 | | 服务发现 | 通过服务卡片/搜索发现 | | 元能力包 | 原子化服务的部署单元 |
1.2 与传统 App 对比
传统 App 原子化服务
┌───────────┐ ┌───────────┐
│ 下载安装 │ │ 免安装 │
│ 独立 APK │ │ 元能力包 │
│ 常驻设备 │ │ 即搜即用 │
│ 较重 │ │ 轻量 │
│ App Store │ │ 服务搜索 │
└───────────┘ └───────────┘2. 原子化服务架构
2.1 服务形态
原子化服务
├─ 元能力包(hap)
│ └─ 服务代码 + 资源
├─ 服务卡片(Widget)
│ └─ 桌面快捷入口
└─ 服务发现
└─ 搜索/扫码/分享链接2.2 服务卡片
typescript
// 服务卡片
@Entry
@Component
struct ServiceWidget {
@State title: string = '服务标题'
@State data: string = '服务数据'
build() {
Column() {
Text(this.title)
.fontSize(20)
Text(this.data)
.fontSize(14)
Button('点击')
.onClick(() => {
// 拉起服务
this.openService()
})
}
.width('100%')
.height('100%')
}
openService(): void {
// 拉起原子化服务
}
}3. 跨设备流转
3.1 服务流转
手机 平板/智慧屏
┌─ 原子化服务 ──┐ ┌─ 原子化服务 ──┐
│ 正在播放视频 │ 流转 │ 继续播放视频 │
│ │ ────► │ │
│ 服务状态保持 │ │ 服务状态保持 │
└───────────────┘ └──────────────┘3.2 流转实现
typescript
import { distributedHardware } from '@kit.DistributedHardwareKit'
// 发起服务流转
async function transferService(targetDeviceId: string): Promise<boolean> {
let result = await distributedHardware.transferService({
serviceId: 'my_service',
targetDeviceId: targetDeviceId,
state: this.getCurrentState() // 保存服务状态
})
return result.success
}
// 监听流转事件
distributedHardware.on('serviceTransfer', (event: ServiceTransferEvent) => {
switch (event.type) {
case 'transferStart':
console.log('服务流转开始')
break
case 'transferComplete':
console.log('服务流转完成')
break
case 'transferFailed':
console.error('服务流转失败')
break
}
})4. 原子化服务开发
4.1 元能力包结构
myService/
├── entry/
│ ├── src/
│ │ └── main/
│ │ ├── ets/
│ │ │ ├── pages/
│ │ │ └── components/
│ │ ├── resources/
│ │ │ ├── base/
│ │ │ └── media/
│ │ └── module.json5
│ └── build-profile.json5
├── build-profile.json5
└── hvigorfile.ts4.2 module.json5
json5
{
"module": {
"name": "myService",
"type": "atom", // 原子化服务
"description": "原子化服务",
"mainElement": "MyService",
"deviceTypes": ["phone", "tablet", "tv"],
"deliveryWithInstall": true,
"installationFree": true // 免安装
}
}5. 面试高频考点
Q1: 原子化服务的核心特性?
回答:免安装、即搜即用、轻量级、跨设备流转。通过元能力包部署,服务卡片提供入口。
Q2: 原子化服务 vs 传统 App?
回答:原子化服务无需安装、轻量、跨设备;传统 App 需要下载安装、较重、常驻设备。
🐱 小猫提示:原子化服务记住 "免安装、即搜即用、元能力包、服务卡片、跨设备流转"。