跳转到正文
YGJoon 技术博客

HarmonyOS 元服务配置核查:atomicService 与 installationFree 的边界

发布于:
·1.1k 字 · 约 3 分钟·作者:
从一个 Stage 工程的配置出发,拆开元服务产物类型、模块免安装能力与交付策略,并给出发布前的核查清单。
HarmonyOS 元服务配置核查:atomicService 与 installationFree 的边界文章封面
目录

先别把两个开关当成一回事

检查一个已经运行一段时间的 Stage 工程时,我会先把“产物是什么”和“模块如何交付”分开看。源码中 AppScope/app.json5 将产物类型声明为 atomicService,而 entry/src/main/module.json5 同时设置了 installationFree: true 与 deliveryWithInstall: true。这三项名字相近,控制的却不是同一层。

华为的拆包文档分别把 bundleType 映射为产物类型,把 installationFree 映射为模块的免安装标记;DevEco 的多目标配置也允许按 product 选择 bundleType。因此,看到其中一个字段,不能直接推断另外两个字段的行为,更不能由此认定应用市场发布条件已经满足。

配置应该按层核对

下面是经过匿名化的配置片段,只保留讨论所需字段。它不是完整工程清单:实际工程还需要保留版本、资源、Ability 等项目配置。

AppScope/app.json5:

{
  "app": {
    "bundleName": "com.example.atomicservice",
    "vendor": "example",
    "versionCode": 1,
    "versionName": "1.0.0",
    "bundleType": "atomicService"
  }
}

entry/src/main/module.json5:

{
  "module": {
    "name": "entry",
    "type": "entry",
    "deviceTypes": ["phone"],
    "deliveryWithInstall": true,
    "installationFree": true
  }
}

第一个文件回答“构建出的 bundle 属于哪种产品形态”,第二个文件回答“这个 HAP 模块声明了什么交付和安装能力”。当工程使用多个 product 或 target 时,还应检查最终选中的 product 是否覆盖了工程默认值;只看默认配置文件容易把本地产物和待发布产物混为一谈。

元服务还受 API 和运行规则约束

元服务不是把普通应用的 bundleType 改一下就完成迁移。华为的元服务开发说明明确指出,可用 API 集是 HarmonyOS SDK 的子集;网络域名、分包大小、卡片类型和部分平台能力也有独立规则。因此,代码能通过普通应用的静态检查,并不能证明它已满足元服务运行条件。

我会在提测前逐项对照:

  1. 构建目标:检查选中的 product、bundleType 和模块清单,确认实际打出的产物与预期一致。
  2. 免安装与交付:分别确认 installationFree 和 deliveryWithInstall 的目标行为,避免把能力声明当作分发策略。
  3. API 适用范围:逐项确认使用的 Kit、系统能力和三方库是否属于元服务可用范围。
  4. 服务端与资源:核对网络域名白名单、分包体积、预加载和卡片资源等当前平台要求。
  5. 发布验证:用目标 product 产物执行实际安装/免安装路径验证,再按当前 AppGallery Connect 与应用市场审核要求复核。

工程快照里前两层声明已经存在,但源码本身不能替代目标产物检查,也不能证明平台侧的域名、API 或市场配置已就绪。尤其是 deliveryWithInstall 与 installationFree 同时为 true 时,应以最终构建产物和目标分发路径验证其行为,不要仅凭字段名下结论。

下一步从缺失的卡片注册继续查

配置核对还发现一个容易漏掉的点:工程里有 ArkTS 卡片页面和 FormExtensionAbility 类,但 module.json5 没有对应的 extensionAbilities 注册,资源目录也没有卡片的 form_config.json。因此,现有源码只能说明卡片 UI 与生命周期模板已开始编写,不能说明系统已经能发现并创建这张卡片。下一篇会把“类文件存在”到“系统可以调度”的链路补完整。

参考资料

下一篇:HarmonyOS 元服务卡片:从空生命周期到可更新的数据链路。


分享这篇文章:


相关文章

下一篇
HarmonyOS 元服务卡片:从空生命周期到可更新的数据链路