OpenHarmony应用开发技巧 - 如何安装ServiceExtensionAbility

TiZizzz TiZizzz 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

概述

文档环境

开发环境:Windows 11

DevEco Studio 版本:DevEco Studio 3.1 Beta1(3.1.0.200)

SDK 版本:3.2.10.7(OpenHarmony 3.2 Beta5 Full SDK)

应用模型:Stage

开发板型号:DAYU 200

系统版本:OpenHarmony 3.2 Beta5

示例工程:​​ServiceExtAbility的创建与使用(OpenHarmony 3.2 Beta5分支)​​

功能简介

  • ServiceExtensionAbility是SERVICE类型的ExtensionAbility组件,提供后台服务相关扩展能力。ServiceExtensionAbility可以被其他组件启动或连接,并根据调用者的请求信息在后台处理相关事务,使用方法可以参考​​ServiceExtensionAbility文档​​学习。
  • 在使用ServiceExtensionAbility时,开发者遇到的最大问题为无法安装的问题,在安装过程中报 install parse profile prop check error 错误。本文档将带大家学习如何正确配置系统应用特权,使包含ServiceExtensionAbility组件的应用可以正确的安装在OpenHarmony系统中。
  • 本文档使用ServiceExtensionAbility文档中的示例工程ServiceExtAbility演示。

前期准备

克隆ServiceExtAbility工程,使用DevEco Studio打开并配置​​自动签名​​,构建HAP包。

由于本文档使用较新的SDK版本不适配于OpenHarmony 3.2 Beta5分支Sample的部分工程,需对此工程进行适配。

@ohos.application.AbilityStage 接口引用修改为 @ohos.app.ability.AbilityStage
@ohos.application.Ability 接口引用修改为 @ohos.app.ability.UIAbility
@ohos.application.ServiceExtensionAbility 接口引用修改为 @ohos.app.ability.ServiceExtensionAbility

适配完后构建成功。

安装构建好的HAP包,报failed to install bundle. error: install parse profile prop check error错误。

hdc install entry\build\default\outputs\default\entry-default-signed.hap

[Info]App install path:entry\build\default\outputs\default\entry-default-signed.hap, 
queuesize:0, 
msg:error: failed to install bundle. error: install parse profile prop check error.
AppMod finish

ServiceExtensionAbility目前仅供系统应用使用,需要在系统应用特权配置文件需配置相关应用的Service使用权限,未配置的应用是无法正确安装的。

如何安装ServiceExtensionAbility

证书指纹获取

指纹获取有多种方式,此处选用一种较为方便的方式,其他方式可参考OpenHarmony应用开发技巧 - 如何获取证书指纹。

1. 在工程中创建新 Module,File > New > Module > Empty Ability。一直点击 Next 直到创建成功。

2. 执行 Run > Run 'application',新创建的 Module 的HAP包被安装到系统中。

3. 执行以下命令打印出HAP的 finger 信息,然后删除新创建的 Module ,恢复工程。

hdc shell "bm dump -n ohos.samples.eTSServiceExtAbility | grep finger"

7AA667BC46B8B1EAAA36EEFC2E7FED47BD49A68C7C07A36F29191769FCF36AD0

应用特权配置

1. 提取当前系统中的特权配置文件 install_list_capability.json ,文件位于 /etc/app/ 中。

hdc file recv /etc/app/install_list_capability.json D:\

2. 在文档最下面添加应用的信息,以本文档示例工程为例。其中:

bundleName:应用包名。

app_signature:上一章节获取的证书指纹。

allowAppUsePrivilegeExtension:是否允许应用使用ServiceExtension、DataExtension。

3. 将特权配置文件 install_list_capability.json 推送回系统中,覆盖系统配置。

hdc shell "mount -o remount,rw /"
hdc file send D:\install_list_capability.json /etc/app/install_list_capability.json

4. 重启系统特权配置文件生效。

hdc shell reboot

应用安装验证

重新执行安装命令,安装前期准备章节中构建好的HAP包。

hdc install entry\build\default\outputs\default\entry-default-signed.hap

[Info]App install path:entry\build\default\outputs\default\entry-default-signed.hap,

queuesize:0,

msg:install bundle successfully.

AppMod finish

参考文档

​​OpenHarmony Gitee Docs - 应用特权配置指南​​

...全文

相关推荐

OpenHarmony应用开发引入Har包[项目代码]

本文详细介绍了在OpenHarmony应用开发中如何引入HAR(Harmony Archive)包,HAR是静态共享包,包含代码、C++库、资源和配置文件,可实现多个模块或工程共享ArkUI组件、资源等代码。文章阐述了HAR的开发约束限制,如不支持UIAbility、ExtensionAbility组件和pages页面等,并提供了具体的开发步骤,包括创建工程、添加模块、选择静态库、支持NDK等。此外,还展示了如何修改代码导出控件和方法,以及如何在主项目中导入和使用这些功能。最后,总结了利用OpenHarmony的HSP和HAR包装组件和NDK工程,为其他应用提供开发支持的方法。

丧尸225

DevEco Code面向 HarmonyOS 开发场景的 AI Agent 工具

基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统

yiersansiwu123d

关于AI开发方法论-以文档为索引的高质量协作开发:让一次现象描述精准命中几个代码块

对AI的编码规范进行约束

nLif

2026学年第二学期彩色校历(excel+pdf)

2026学年第二学期彩色校历(excel+pdf)

阿夏reasonsummer

在奔跑中换芯:Java热部署的JVM边界、类加载器扩展与框架级重载全景代码包

运行命令:bash code/hotswap-lab/build_and_run.sh。脚本优先使用 JAVA_HOME,未设置时用 /usr/libexec/java_home -v 1.8 查找 JDK 8,然后依次运行实验一 RedefineMatrix(带 -javaagent 启动)、实验二 AttachDriver、实验三 ClassLoaderPrependLab、实验四 BeanReloadSim、实验五 ChangeBatchPlanner、实验六 DevLoopCostModel,完整输出保存在 code/run_output.txt。

张彦峰ZYF
评论
收藏 已收藏
分享
返回顶部