鸿蒙打包———构建的hap包跑了,找不到? 原创

前端森之鸟
发布于 2025-8-29 23:57
浏览
0收藏

无论是Flutter项目,使用VS Code打包;还是ArkTs原生项目,使用DevEco Studio打包,都找不到Hap?

我刚开始也遇到了这个情况,后来有朋友过来咨询这个问题,我就这里分享一下吧,虽然很简单,但是找不到很挠头,也费时间。

Hap去哪里打包?

通过顶部菜单栏找到构建->编译Hap(s)APP(s)->编译Hap(s)

鸿蒙打包———构建的hap包跑了,找不到?-鸿蒙开发者社区

去哪里找?

项目目录下的build中并没有?是在entry目录下面的build中
鸿蒙打包———构建的hap包跑了,找不到?-鸿蒙开发者社区

补充,Hap包是什么?

官方解释:
HAP(Harmony Ability Package)是应用安装和运行的基本单元。HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry和feature。

entry:应用的主模块,作为应用的入口,提供了应用的基础功能。
feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。
应用程序包可以只包含一个基础的entry包,也可以包含一个基础的entry包和多个功能性的feature包。

我觉得呢,就是一个模块包,一个APP中至少有一个模块,所以至少一个Hap包,也可能是多个Hap包。

与APP包的区别

APP包括所有的模块的所有功能,是发布到应用市场的基本单元。

补充 HAP 和 HSP

HAR(Harmony Archive)是静态共享包,包含代码、C++库、资源和配置文件。HAR支持多个模块或工程共享ArkUI组件和相关代码。

HSP(Harmony Shared Package)是动态共享包,包含代码、C++库、资源和配置文件,用于实现代码和资源的共享。HSP跟随宿主应用的App包一起发布,与宿主应用同进程,具有相同的包名和生命周期。

HSP编译生成的HAR包仅包含配置文件和接口定义,不包含代码逻辑。该HAR包仅用于开发阶段,不会影响App包的大小。

HAP包拆包只能在module.json文件的dependencies字段看到引用的HSP模块名,看不到引用的HAR。HAR在编译时已打包在HAP包里,而HSP是单独成包的。.app文件安装时,HSP与HAP处于同一级别。

思考

这里就要说为什么默认模块有APP名称和图标设置,并且APP的项目配置AppScope中也有一套APP名称和图标设置了。因为可以打不同的包是一个方面的原因,也可能基于这个考虑,这个是我目前的理解。后续在完善这个想法。

参考

官方文档

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
    相关推荐