首页 > 其他分享 >OpenHarmony应用开发技巧 - 如何安装ServiceExtensionAbility

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

时间:2023-03-10 11:37:04浏览次数:59  
标签:OpenHarmony 技巧 default ServiceExtensionAbility 文档 install entry

概述

文档环境

开发环境: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分支)​

功能简介

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

前期准备

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

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

由于本文档使用较新的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

适配完后构建成功。

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

安装构建好的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. 在工程中创建新ModuleFile > New > Module > Empty Ability。一直点击Next 直到创建成功

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

  1. 执行Run > Run 'application'(application为新创建Module的名称),新创建的Module 的HAP包被安装到系统中。

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

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

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

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

7AA667BC46B8B1EAAA36EEFC2E7FED47BD49A68C7C07A36F29191769FCF36AD0

应用特权配置

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

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

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

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

bundleName:应用包名。

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

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

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

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

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

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

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

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应用开发技巧 - 如何安装ServiceExtensionAbility_Ability_09

参考文档

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

本文作者:​​TiZizzz​

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com/#bkwz​

标签:OpenHarmony,技巧,default,ServiceExtensionAbility,文档,install,entry
From: https://blog.51cto.com/harmonyos/6112846

相关文章

  • OpenHarmony应用开发技巧 - 如何获取证书指纹
    概述文档环境开发环境:Windows11DevEcoStudio版本:DevEcoStudio3.1Beta1(3.1.0.200)SDK版本:3.2.10.7(OpenHarmony3.2Beta5FullSDK)应用模型:Stage开发板型号:DAYU2......
  • 基于OpenHarmony/HarmonyOS操作系统的ArkUI框架——Harmony原生开发
    一.基于OpenHarmony/HarmonyOS操作系统的ArkUI框架——Harmony原生开发开发需要的IDE:HUAWEIDevEcoStudio1.1什么是ArkUI框架?ArkUI是一套构建分布式应用界面的声明......
  • #创作者激励#基于OpenHarmony的储物精灵
    【本文正在参加2023年第一期优质创作者激励计划】基于OpenHarmony的储物精灵一.项目简介1.产品描述基于OpenHarmony的智能柜物管理系统,可用于不同场景的环境下通过终端......
  • c++ 代码技巧
    数学运算性能大多数数据运算不存在性能问题,但是相对来说,整型的除法运算还是比较昂贵的。参考下面的例子:uint32_tBM_S1(uint64_tv){uint32_tresult=0;do{......
  • ctfshow web入门 命令执行 特征及绕过技巧
    远程命令执行(RemoteCommandExecution,RCE)原理命令执行漏洞是指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一。危险函数......
  • EBS 开发技巧 常用代码
    Form开发技巧常用代码Form中的变量Form中用到的变量,总结如下:变量定义位置作用域,由低到高访问方法引用方式各层触发器中的变量该触发器FormPL/SQL变量......
  • MegEngine 使用小技巧:借助 DataLoader 获取分批数据
    在使用MegEngine进行模型训练时,首先要进行的是数据加载和预处理。在此过程中,MegEngine中的megengine.data模块,提供了数据分批功能,其内部实现流程如下图:通过使用Datal......
  • seo优化的几个技巧
    SEO优化是网站建设的每日必修,它能够提升网站权重排名,获取流量。进行SEO优化也是有技巧的,今天就来讲一讲seo优化的几个技巧。1.关键词在优化Seo关键词的时候,一定要注意关......
  • 分享一个可以早点下班的开发小技巧
    这次来跟大家分享一下让大家早下班的工具。首先要声明一下,分享的工作,是为了大部分人,而不是“某一个人”,不喜勿喷哈!介绍的就是这两年很火的低代码平台,网上两种观点,第一种人......
  • wps操作技巧
    批量打印发票批量打印发票的经验。先将所有图片批量转换成浮动图片然后全选,左对齐等宽这样处理后,图片变成一样大了,再手动将图片一个个转换成嵌入到单元格图片......