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

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

 

知识技巧更多>>

配贯穿式五联屏,售价12.98万起,解读灵悉L 吉利星愿正式上市,售价6.98万元起 售价9.98万元起,定位紧凑型SUV,这款车适合通勤使用 售价12.98万元,动力充沛,本田灵悉L值得入手吗? 适合上下班通勤,五菱缤果怎么样? 适合上下班通勤使用,定位小型车,海鸥值得购买吗? 适合上下班通勤使用,定位小型车,海鸥值得购买吗? 适合上下班通勤,起售价5.68元,五菱Nano EV怎么样? 丰田Prius创下39.5km/L的吉尼斯世界纪录,总计行驶超过5167.6km 宝马推出特仕版X5庆祝上市25周年,融合xLine和M Sport元素! 腾势Z9 GT正式首发,拥有纯电动与PHEV版本,高性能四门GT轿跑! 丰田GR Starlet开发中,将成为品牌最入门的GR车款! 宝腾Saga MC3将拥有全新设计,并更换全新1.5L自然进气引擎! 宝马正在重组其设计团队,“大鼻孔”是主要原因? 刹车系统存在质量问题,宝马集团全球召回150万辆汽车! 丰田Raize在南美洲送测,结果只获1颗星评价,只标配了2具气囊! 宝腾在埃及启动CKD组装生产,打造北非市场出口枢纽! 泰国7月汽车销量:丰田占据5个名次,只有一款电动车入围! 越野老炮再进化,车长4790mm,配副驾大屏,全时四驱+前后差速锁 新一代“蛙王”,依旧提供weissach套件,预计保留4.0升自吸引擎 专为年轻人打造,四门轿跑车身设计,搭载1.5T轻混,加速4.9s 国产硬派SUV,车长5078mm,非承载车身+超级四驱,最小离地213mm 德系实力派,车长4735mm,配2.0T+7挡湿式双离合,加速6.5s油耗7L 法拉利超级旗舰,蝶翼式车门,V6混动+F1赛车技术,剑指迈凯伦W1 领克打造的轿跑,车长4697mm,265马力、加速5.7s,还有弹射起步 特立独行的国产车,皮卡造型打造,增程/纯电双动力,还有CDC悬架 宝马的“王牌”,配V8插电混动,727马力/1000牛·米,极速306km/h 别克的巅峰之作,配后排独立空间、星空幻影车顶,还有32寸大彩电 比亚迪全新大型SUV,腾势N9官图发布,车长5.3米,年内正式亮相 2025款大众速腾正式上市,配置升级,价格不变,两种动力