首页 > 原创写作 > 原创写作 > 鸿蒙开发实战 - 对鸿蒙开发程序包 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 的时候,就会对代码进行编译、混淆及压缩处理。

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

 

原创写作更多>>

不存在“就业末日”,高盛CEO否认AI会使劳动力市场萎缩 黄仁勋2026年首度来华现身菜市场,体验上海市井风俗 苹果曾想让AI全面接管iPhone 17等,结果被高管否决 吉利自研全固态电池年内将完成首个Pack下线,并进行装车验证 初代手机没发货,特朗普移动旗舰T1 Ultra已在路上 中国联通确认:今年每月至少一款eSIM手机上市 eBay将向未经授权的AI购物智能体说“不” 诺奖得主、谷歌DeepMind创始人Hassabis要用AI“攻克人类疾病” 比亚迪2026款海豹05 DM-i&海豹06 DM-i超享版加推210km版本,8.98万元起 上汽大众ID.ERA 9X旗舰SUV外观细节公布:增程动力、大六座布局 微信下架数十部违规微短剧:低俗擦边、剧情荒诞离奇 零跑朱江明:车企绝对不能亏本卖车 25.9万辆!宝马德国莱比锡工厂2025年产量再创历史新高 新款阿维塔12官图发布,设计、动力、操控、智驾全域升级 一则“裁员”小作文拖累股价下跌?微软高管澄清:100%假消息 全球动力电池前瞻技术与创新论坛共探产业未来 捷途汽车7年达成200万辆销量里程碑 Turing融资6,300万美元后与电装合作研发自动驾驶汽车 丰田将车型生命周期延长至九年 爱芯元智仇肖莘:“技术通用、芯片专用”,助力汽车智能普惠 零跑Lafa5 Ultra预计2026年第二季度发布 中国汽车技术研究中心公开明确:将电池分为固态、固液混合、液态电池三大类 QNX:车规级操作系统 - 汽车电子软件的基石 广州车展,一汽奥迪带来了哪些车? 广丰铂智7亮相,重新定义合资纯电精品车 享界 S9 与 S9T 双旗舰登陆广州车展,以 “智能 + 豪华” 双轮驱动,在 30 万级以上高端市场向传统豪华品牌发起冲击 日产与奔驰就芯片供应危机发出预警 特斯拉聘请兰博基尼前高管推动印度市场销售 传安世半导体荷兰总部曾试图解雇另一中国高管 闻泰科技:重启安世半导体成品出口,必须恢复张学政CEO职务