惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
IT之家
IT之家
博客园 - 聂微东
The Cloudflare Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
H
Help Net Security
博客园 - 叶小钗
V
V2EX
WordPress大学
WordPress大学
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
C
Check Point Blog
B
Blog
D
DataBreaches.Net
美团技术团队
罗磊的独立博客

博客园 - webabcd

开天辟地 HarmonyOS(鸿蒙) - 工具: Targets, Products 开天辟地 HarmonyOS(鸿蒙) - 测试: 单元测试 开天辟地 HarmonyOS(鸿蒙) - 优化: HiDebug(用于获取 cpu, 内存等信息) 开天辟地 HarmonyOS(鸿蒙) - 优化: errorManager(捕获未处理异常) 开天辟地 HarmonyOS(鸿蒙) - 优化: HiAppEvent(事件日志) 开天辟地 HarmonyOS(鸿蒙) - 优化: hilog 日志 开天辟地 HarmonyOS(鸿蒙) - 安全: 用户认证 开天辟地 HarmonyOS(鸿蒙) - 安全: 申请权限 开天辟地 HarmonyOS(鸿蒙) - 安全: 关键资产 开天辟地 HarmonyOS(鸿蒙) - 安全: 加密解密 开天辟地 HarmonyOS(鸿蒙) - 信息: CommonEventManager(用于进程间通信,以及订阅系统事件) 开天辟地 HarmonyOS(鸿蒙) - 信息: emitter(用于同一进程内不同线程间或同一线程内发送和订阅事件) 开天辟地 HarmonyOS(鸿蒙) - 信息: 各种信息 开天辟地 HarmonyOS(鸿蒙) - 华为账号: 华为账号的默认登录 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVImageGenerator(提取视频指定时间点的图像) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVMetadataExtractor(提取视频或音频的元数据信息) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVTranscoder(视频转码) 开天辟地 HarmonyOS(鸿蒙) - 媒体: SoundPool(音效播放器) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVPlayer(播放器,用于播放视频或音频)
开天辟地 HarmonyOS(鸿蒙) - 元服务: 元服务
webabcd · 2025-05-27 · via 博客园 - webabcd

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - 元服务: 元服务

示例如下:

pages\atomicservice\AtomicServiceDemo.ets

/*
 * 元服务
 */

import { TitleBar } from '../TitleBar';

@Entry
@Component
struct AtomicServiceDemo {

  @State message: string = "元服务,示例项目在 /HarmonyDemo/atomicservicedemo 目录中"

  build() {
    Column({space:10}) {
      TitleBar()
      Text(this.message)
    }
  }
}

\atomicservicedemo\entry\src\main\ets\pages\Index.ets

/*
 * 本例用于演示元服务(atomic service)
 *
 * 元服务的创建:
 * 先在 AGC 上的“证书、APP ID和Profile”的“APP ID”中新建一个 APP ID
 * 然后再在 DevEco Studio 中创建 atomic service 项目,创建的过程中需要将当前的 atomic service 项目绑定到 AGC 上的 APP ID
 * 如果需要手动配置的话,则在 AppScope/app.json5 中做类似如下的配置
 * {
 *   "app": {
 *     "bundleName": "com.atomicservice.6917572560037685495", // 在 AGC 上的“证书、APP ID和Profile”的“APP ID”中创建的包名
 *     "bundleType": "atomicService", // 元服务
 *   }
 * }
 *
 * 元服务的特性:
 * 元服务免安装,自动更新
 * 元服务是跟随华为账号的
 * 元服务无法使用一些 api,比如 import { displaySync } from '@kit.ArkGraphics2D'; 等
 * 元服务不支持 feature 类型的模块
 * 元服务支持分包,将 entry 类型的 hap 作为首包,其他 hsp 作为分包,只需下载和安装首包后即可立即启动元服务
 * 元服务的单个包的大小不能超过 2MB,所有包的总大小不能超过 10MB
 *
 * 注:
 * 1、如果要在元服务中使用账号系统,则在你的多种登录方式中必须要包含华为账号登录的方式(这是元服务的一个审核要求)
 * 2、可以为元服务开发卡片
 * 3、可以通过负一屏搜索并打开指定的元服务,也可以通过元服务的卡片打开元服务(点击元服务右上角的按钮,可以找到生成卡片的入口)
 * 4、元服务的图标有特殊要求,可以通过 DevEco Studio -> File -> New -> Image Asset 生成符合标准的元服务图标
 */
import { router } from '@kit.ArkUI'

@Entry
@Component
struct Index {

  build() {
    Column({space:10}) {
      Text('atomic service')
    }
    .height('100%')
    .width('100%')
    .justifyContent(FlexAlign.Center)
  }
}

\atomicservicedemo\entry\src\main\ets\widget\pages\WidgetCard.ets

/*
 * 本例用于演示元服务的卡片
 */

@Entry
@Component
struct WidgetCard {

  build() {
    Column() {
      Text("click me")
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .onClick(() => {
      postCardAction(this, {
        action: 'router',
        abilityName: 'EntryAbility',
      });
    })
  }
}

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd