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

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

 

原创作品更多>>

长城魏牌80进军马来西亚市场更名魏牌G9,本土化组装插混 MPV 即将上市 捷豹路虎拟利用英国闲置产能代工奇瑞车型,中英车企合作或成英国汽车业复苏关键 博通推出业界首款6G兼容DFE数字前端SoC芯片BroadPeak 详读2万3千字的新“AI 宪法”之后,我理解了Anthropic的痛苦 爬虫公司SerpApi反诉谷歌,称“谷歌才是全球最大爬虫” 阿里云Coding Plan上新:支持千问3.5、GLM-4.7、Kimi-K2.5等模型 三星Galaxy S26 Ultra宣传材料曝光:相机规格与电池容量尘埃落定 三星Galaxy S26系列手机将深度整合Perplexity AI,打造多智能体协同生态系统 宝马将在中国投产长轴距版iX3,4月北京车展首发,年内上市 中国汽车2025年出口:总量跃升与结构变迁 特斯拉取消标配自动辅助驾驶功能,新车默认不提供车道居中功能 中国电动跑车SC01正式登陆欧洲,限量1000台 大众ID.4改款后更名,ID.5将停产 晓莺说热点:2026CES观察:AI狂奔,从灵魂到躯体 宝马iX3与奔驰EQ GLC预售超预期,双方加速产能爬坡 丰田在加拿大工厂投产2026款混动版RAV4 TikTok将在欧盟加强年龄验证技术,数千个未成年人账号被移除 西贝宣布关店102家后,罗永浩最新发声 抖音加强治理摆拍演绎:煽动对立情绪最高永久封禁 华为、小米等品牌被纳入iPhone以旧换新范围 极氪007/GT车型更新计划公布:今年Q2焕新上市,将提供900V版 中国电子董事长:2026年将着力打造国产全谱系全流程EDA工具系统 推出新一代高性能芯片 突破2700万辆!2025年中国车企全球销量首超日本 工信部:动力电池、新能源汽车生产者承担动力电池回收“兜底”责任 迎接新作,《火焰之纹章》全系列17部游戏大盘点,重回旧日时光 甄嬛传、蜡笔小新、爱情公寓,百部经典影片被搬上“游戏大银幕” 官方重磅确认!工作室正全力开发《匹诺曹的谎言》续集 美国新一轮入境限制生效,全球机场乱成一团! 北京高考状元回中学母校当老师?原来10年前他就告诉了答案 2025行业之光大会——第34届全国建材与家居行业年会圆满落幕