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

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

 

全国招聘信息更多>>

纯电动标致e-408全球首发,续航453公里,充电10分钟行驶100公里 中国品牌将会称霸马来西亚市场?2025年之后才能见真章! 丰田MR2或在2026年亮相? 新一代丰田Supra将采用2.0T涡轮+混动设定,马力突破400匹! 现代Elantra N引擎损坏被拒绝索赔,原厂:车主转速拉太高! 2024款日产Magnite将进军更多国家:指定对手WR-V和Raize! 二手限量顶级超跑兰博基尼Veneno寻找新主人,售价1390万美金! 丰田Land Hopper规格曝光:轴距比Corolla Cross小,2025年正式登场 全新迈凯伦W1发布,4.0L V8引擎,马力1258匹,全球限量399辆! 特斯拉在2024年第三季度超越比亚迪重夺纯电动汽车销售冠军宝座! 吉利Starray海外上市:吉利博越L的国际版本、采用2.0L TD 引擎! 特斯拉Robotaxi Cybercab 2026年投产,Robovan概念车正式亮相! 宝腾S70 R3正式亮相:纯赛道设定、采用1.6L CamPro赛道版引擎! 全新一代丰田凯美瑞在泰国发布! 每月花费1798元?限时12.78万起的天籁,养车费用高吗? 哪吒汽车9月份销量出炉:流量不少,销量不多 吉利星愿上市,限时6.98万起售,能撼动海鸥吗? 本田9月份销量:梦醒时分,沦为“炮灰”? 东风日产探陆9月销量出炉!每年养车成本2万多,值得买吗? 岚图汽车:不温不火的“六边形战士”,最危险 Jeep全新进口SUV,配全时四驱,比奥迪Q7香? 全新凯迪拉克XT5:二线豪华,买晚不买早? 哪吒X:售价8.98万起,纯电续航401km,适合家用 五菱新电车申报:侧滑门+四座,或命名五菱之光EV 依维柯4x4越野车将上市,定名为“欧霸”,侧滑门,3.0T柴油动力 小鹏P7+很好,比它更好、更划算的C级新能源有吗? 新款江铃域虎曝光,全新设计风格,外观很硬朗,搭载2.5T柴油动力 比亚迪全新MPV夏内饰图曝光,三块大屏,带冰箱,广州车展亮相 还在五菱缤果SUV五座版和比亚迪海鸥间纠结?对比下就知道谁更好 零跑C10登陆欧洲,都说老外很懂车,看看他们如何评价?