首页 > 阅读笔记 > 阅读笔记 > 鸿蒙开发实战 - 对鸿蒙开发程序包 HAP、HAR 以及 HSP 的简要理解

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

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

备注:在看文档的时候,一定要注意是 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 的时候,就会对代码进行编译、混淆及压缩处理。

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

 

阅读笔记更多>>

问界M9 Ultimate首搭2.0T增程器三电机,迈巴赫GLS劲敌 闪充加持!比亚迪海洋网携四款新车走进羊城 刷新群众认知 宝马一把手换人!33年从管培生逆袭成CEO,扛起转型大旗 大型SUV市场“神仙打架”4月销量榜 1款销量过万 极氪9X第二 全主动悬架技术路线分化:800V分体式与48V集成式竞逐 上汽集团斩获两项世界品牌大会荣誉,在新能源和智能化发展趋势中,展现出全面的科技布局能力和转型韧性 Robotaxi用户翻番 文远知行营收增长58% 毛利率达35% 当大众亮起小蓝灯,ID. ERA 5S要抢谁的市场? 奕境X9破局逻辑:央企华为深度绑定,重塑华系汽车技术标杆 BBA最大号的SUV来了,迟到的奥迪Q9内饰长啥样 闪充版豹8越野更硬核 3个轮子也能轻松开? 奕派M8公告深读:华为乾崑+央企底座,30万级大六座SUV市场变天? 重新审视15万级市场:从“够用就好”到“一步到位”有多远? 最便宜的大六座:15万不到,华为全家桶!宝骏这次拼了? 阿维塔07L正式申报,看了配置后,预测起售价21.69万 兰博基尼迎来63周年,全新Fenomeno敞篷版即将推出 4月零跑断档式领跑,“蔚小理米”月销3万竞争激烈 高温到底会不会“伤”电池?闪充对比三元锂 零跑从“领跑”走向“加速跑”是因为产品体系的复利、全球化的扎根、战略主动权的转移 埃安i60:A级大单品爆款背后的体系制胜 卡文乐途轻卡入列 福田卡文汽车助力冷链行业标杆企业成功转型 奥迪E7X获全球首个整体座舱OEKO-TEX母婴级双认证 Model X正式停产!最后一辆车签满员工名字 深度试驾宝马X5 M雷霆版!比X5更狠、比M5更野 广汽全新方盒子要来了!设计原创,取名越7能抢方程豹钛7市场? 5月新车这7款不容错过,轿车、SUV、MPV都有,款款火爆? 纯电大六座的凯威德值不值?关键看契合的气场与用车需求 4月,32万销量!那个站在世界之巅的比亚迪,又回来了 坚守守信造车底色 魏建军与长城汽车的三十六年履约之路 艾瑞泽S准备平替奥迪A4L,设计心有灵犀