• HarmonyOS hsp制作与引用


    1. HarmonyOS hsp制作与引用

    1.1 介绍

      HSP动态共享包(模块),应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。官网文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/in-app-hsp-0000001523312158-V2
      对于企业大型应用开发,有部分公共的资源和代码,只能在开发态静态共享,并且打包到每个依赖的HAP里,这样导致包体积较大,且有重复多份公共资源和代码重复打包到应用中。
      为了解决运行态状态无法共享,以及减少包体积,让多个HAP能够共享同一公共资源代码,DevEco Studio支持动态共享包HSP(Harmony Shared Package)。
      应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。 应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。
      当前暂不支持跨应用共享包。一个项目自能有一个HSP包。

    1.1.1 HSP旨在解决HAR存在的几个问题

    (1)多个HAP引用相同的HAR,导致的APP包大小膨胀问题。
    (2)多个HAP引用相同的HAR,HAR中的一些状态变量无法共享的问题。

    1.1.2 HSP的一些约束

    (1)HSP及其使用方都必须是Stage模型。
    (2)HSP及其使用方都必须使用esmodule编译模式。
    (3)HSP不支持在配置文件中声明abilities、extensionAbilities标签。

    1.2 流程

    1.2.1 创建步骤

      该工程为Stage模型,在工程中创建HAR模块。
      (1)点击项目右键=>New=>Module
    在这里插入图片描述
      (2)New Module选择Static Library
    在这里插入图片描述
      (3)在该Module的build-profile.json5中添加"artifactType": "obfuscation"开启代码混淆
    在这里插入图片描述
      (4)编辑Hsp包
    在这里插入图片描述

      (5)编译构建的HSP可在模块下的build目录下获取,包格式为.hsp。*
    在这里插入图片描述

    1.2.2 在使用方模块中引用HSP

      在使用方entry/feature模块的oh-package.json5文件中添加HSP模块引用,以引用名为sharedlibrary的HSP为例:
    (1)Add.ets

    {
      ...
      "dependencies": {
        "sharedlibrary": "file:../sharedlibrary"
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
      添加引用后,dependencies字段内的片段将出现报错:
    在这里插入图片描述
      将鼠标放置在报错处会出现提示,在提示框中点击Run ‘ohpm install’。
    在这里插入图片描述

    1.3 运行引用HSP的使用方模块

      连接本地真机或本地模拟器。
      单击Run > Edit Configurations,选择Deploy Multi Hap标签页,勾选Deploy Multi Hap Packages,选择使用方模块(如entry)和HSP模块(如sharedlibrary),点击OK。
    在这里插入图片描述
      单击Run > Run’模块名称’(如Run ‘entry’)或。
      DevEco Studio会启动应用/服务的编译构建,完成后应用/服务即可运行在本地真机或模拟器上。

  • 相关阅读:
    平板摄像头+算力搞定3D空间实时重建和理解,清华和禾多科技新成果入选CVPR 2022 Oral...
    Vue项目案例-头条新闻
    JDK17新特性
    JUC源码学习笔记8——ConcurrentHashMap源码分析1 如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移
    设计模式 —— 关于8月份学习设计模式的总结
    35岁程序员炒Luna代币千万资产3天归零;俄罗斯调查谷歌等科技公司;Linux 5.19加入了50万行图形驱动代码|极客头条
    室友面上阿里,把这些笔记扔给了我:Roket/Rabbit/Kafka,狠虐菜鸡
    「SpringCloud」10 Stream消息驱动
    【liunx】进程的状态
    星淘惠跨境——亚马逊新消息,多地中欧班列开行,为跨境电商发展助力
  • 原文地址:https://blog.csdn.net/qq_36158551/article/details/138197322