首页 > 新车测评 > 新车测评 > 鸿蒙开发实战 - 对鸿蒙开发程序包 HAP、HAR 以及 HSP 的简要理解

鸿蒙开发实战 - 对鸿蒙开发程序包 HAP、HAR 以及 HSP 的简要理解

发布时间:2024-07-26 22:46:36

备注:在看文档的时候,一定要注意是 HarmonyOS 还是 OpenHarmony。因为两者使用的 SDK 是不同的。


这里不对此展开详细的说明,只对 HAR 和 HSP 说下自己的理解,相比较于 HAP,他们都不能单独运行到设备上。他们两个的区别主要有两方面,一个是 HAR 不支持声明 Pages 页面,另一个是 HSP 的发布需要确保版本号和宿主程序保持一致。

在日常使用场景中,我们要依据实际业务来创建使用 HAR 还是 HSP,对于单 HAP 来说,两者在选择上其实都可以,但对于多 HAP 的业务,因为在打包时,HAR 会被编译打包到所有依赖该文件的 HAP 和 HSP 包当中,这就需要平衡两者之间的选择。


针对第一个区别,我们不能够通过 pushUrl 的方式进行页面跳转,但鸿蒙还提供了另外的方式,通过路由命名跳转到指定页面。比如下面我们命名当前页面路由为 myPage


那么我们就可以通过下面的方式进行跳转:

router.pushNamedRoute({ name: 'myPage' })
如果在跳转的时候把当前组件卸载,我们可以用

router.replaceNamedRoute({ name: 'myPage' })
在跳转的同时我们可以进行数据传递:

router.pushNamedRoute({
  name: 'myPage',
  params: {
    data1: 'message',
    data2: {
      data3: [123, 456, 789]
    }
  }
})
在 myPage 页面进行数据获取:

router.getParams();
上面所说这些,主要是针对公司内部自有业务开发场景来说的,如果你现在封装了一个功能,希望提供给所有可能使用到该三方库的开发者,应该选择哪种方式呢?上面所说的第二点区别其实已经给出了答案,最优解是选择 HAR 包,同时 HAR 包可以发布到 OHPM 私仓或者中心仓供其他应用使用,在发布到中心仓时最好开启代码混淆,以此来保证代码安全。

在 HAR 模块的 build-profile.json5 文件中的 ruleOptions 字段下的 enable 进行设置,配置如下所示:

"buildOptionSet": [
    {
      "name": "release",
      "arkOptions": {
        "obfuscation": {
          "ruleOptions": {
            "enable": true,
            "files": [
              "./obfuscation-rules.txt"
            ]
          },
          "consumerFiles": [
            "./consumer-rules.txt"
          ]
        }
      },
    },
  ]
这样在构建 HAR 的时候,就会对代码进行编译、混淆及压缩处理。

以上就是对鸿蒙程序包区别和使用场景的一个简要概述,因为本身也是在学习过程,避免不了存在一些理解上的出入,还望给与指正,一起交流学习,感谢。

 

新车测评更多>>

不读博士,照样进OpenAI!o1核心成员现身说法了 华为FreeClip 2耳夹耳机确认支持Android设备豆包App唤醒 小米SU7、YU7下架熔岩橙配色 雷军:很帅但敢买的人太少了 深蓝S09汽车V5.1.0版本OTA,升级鸿蒙座舱HarmonySpace 5等 三星Galaxy S26系列手机配色与存储规格曝光 银河航天创始人徐鸣:手机直连卫星将引领6G通信革命 AMD CPU份额从1%冲到40% 苏姿丰回忆来时路:胜利来自3大转折点 周鸿祎:2026年全世界至少会出现100亿个智能体 百亿级公司在AI领域都算小公司 减少误触:宝马新专利曝光,给车载触摸屏加个“防抖条” 中国新型反无人机系统性能受关注:拦截距离可达3000米以上 华尔街担心产能过剩之际 台积电月度报告力证AI没降温 首台小米定制SU7 Ultra竞速红交付 车主喊话雷军:好东西自己会说话 马斯克预言更接近现实:特斯拉FSD v14.2已集成部分AI推理能力,有助于路线优化、自动泊车等功能决策 有米粉把REDMI K80至尊版改名王腾纪念版:本人笑哭 消息称OpenAI大力研发音频AI模型,加紧备战首款硬件设备 三大冠军!比亚迪2025年销售460万辆 海外年销量首次突破100万辆 AI浪潮推高存储芯片成本,分析师称未来一年消费电子或涨价两成 固态电池国标将至,终结“名词混战” 滴滴自动驾驶落地阿布扎比,中东成L4出海首站 LG与奔驰高管达成共识:加强下一代汽车零部件合作 上海两款外企大模型通过国家备案 高调喊出“奔驰永远是奔驰”,段建军的底气究竟从何而来 广汽总经理交棒,四大引擎驱动“新广汽”蝶变 上汽大众、上汽奥迪携新品亮相广州车展! Stellantis第三季度净营收增长13% 奔驰集团Q3利润大跌70% 保时捷第三季度亏损11亿美元 零跑汽车否认“一汽成最大股东”传闻,称消息不实 丰田CEO:暂未因安世半导体危机面临芯片短缺 DIY大神使用500个一次性电子烟:成功为自己房屋供电!