美文网首页1024ArkTS/ArkUI实战Web前端之路
52、鸿蒙/创建多Hsp模块服务

52、鸿蒙/创建多Hsp模块服务

作者: 圆梦人生 | 来源:发表于2024-09-22 16:08 被阅读0次

本章将把Hap、Hsp以案例方式加深一遍:

什么是Hap

HAP(Harmony Ability Package)是应用安装和运行的基本单元。HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry和feature。

  • entry:应用的主模块,作为应用的入口,提供了应用的基础功能。
  • feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。
    应用程序包可以只包含一个基础的entry包,也可以包含一个基础的entry包和多个功能性的feature包。
什么是Hsp

HSP(Harmony Shared Package)是动态共享包,可以包含代码、C++库、资源和配置文件,通过HSP可以实现代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。

  • 多个HAP/HSP共用的代码和资源放在同一个HSP中,可以提高代码、资源的可重用性和可维护性,同时编译打包时也只保留一份HSP代码和资源,能够有效控制应用包大小。
  • HSP在运行时按需加载,有助于提升应用性能。
  • 同一个组织内部的多个应用之间,可以使用集成态HSP实现代码和资源的共享。
什么是Har

HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。

  • 作为二方库,发布到OHPM私仓,供公司内部其他应用使用。
  • 作为三方库,发布到OHPM中心仓,供其他应用使用。
  • HAR不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用。
  • HAR不支持在配置文件中声明UIAbility组件与ExtensionAbility组件。
  • HAR不支持在配置文件中声明pages页面,但是可以包含pages页面,并通过命名路由的方式进行跳转。
  • HAR不支持引用AppScope目录中的资源。在编译构建时,AppScope中的内容不会打包到HAR中,因此会导致HAR资源引用失败。
  • HAR可以依赖其他HAR,但不支持循环依赖,也不支持依赖传递。

案例场景:Hap依赖多个Hsp服务,Hsp依赖Hsp服务

Hap工程 entry 入口文件
entry Hap.png
Hsp模块
common: 功能模块
home: 首页模块
common Hsp.png
home Hsp.png
  • 创建Hsp模块(项目右击/模块)


    创建Hsp.png
    创建Hsp.png
  • Hap引入Hsp

    • 项目/entry/oh-package.json5配置


      image.png
    • home子模块/index.ets


      Hap.png
    • 引入多个Hsp模块


      Hap引入Hsp.png
      Hap引入Hsp.png
  • Hsp模块(home)引入Hsp(common)
    • home引入commo模块(工程[hmtemplate]/home/oh-package.json5)


      home.png
    • common/index.ets


      common.png

官网Hap介绍

相关文章

网友评论

    本文标题:52、鸿蒙/创建多Hsp模块服务

    本文链接:https://www.haomeiwen.com/subject/rumtrjtx.html