HarmonyOS鸿蒙Next中怎么从工程中提取出HAP包文件?
HarmonyOS鸿蒙Next中怎么从工程中提取出HAP包文件? 滴滴滴滴滴滴滴滴滴滴
工程是啥意思?deveco里的项目?build-build haps/apps,
更多关于HarmonyOS鸿蒙Next中怎么从工程中提取出HAP包文件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
【解决方案】
- HAR包编译后会同步合入HAP包中,不会独立存在,参考HAR包介绍。
- HAP包具体的生成位置可以参考\entry\build\default\outputs\default\entry-default-unsigned.hap,编译后的HAP包的结构中,主要包含resources资源目录、ets代码文件目录、其他配置文件。
【背景知识】
- APP Pack(Application Package):应用/元服务发布形态为APP Pack(Application Package),它是由一个或多个HAP(Harmony Ability Package)包以及描述APP Pack属性的pack.info文件组成。APP是发布上架到应用市场的基本单元,但是不能在设备上直接安装和运行。
- HAP(Harmony Ability Package):HAP是应用安装和运行的基本单元。HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry和feature。
- HAR(Harmony Archive):HAR是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。
- HSP(Harmony Shared Package):HSP是动态共享包,可以包含代码、C++库、资源和配置文件,通过HSP可以实现代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。
【解决方案】
通过背景知识的介绍可知,要想把HAR、HSP、HAP三种类型的包都打包成APP包,首先需要先打包得到HSP/HAR,然后打包得到HAP包,最后再打出APP Pack包。具体操作步骤如下:
- 首先需要将工程打包成HSP/HAR,详细步骤和背景可参考构建HAR。在创建模块那一步选择“Shared Library”即为HSP工程。
- 然后需要将HSP/HAR打包成HAP包,可通过IDE顶部菜单栏选择Build>Build Hap(s)/APP(s)>Build Hap(s)快速完成HAP包构建。
- 最后需要将HAP包打包成APP包,过程可参考将多工程的HAP打包成一个App。
- HAR包编译后会同步合入HAP包中,不会独立存在,参考HAR包介绍。
- HAP包具体的生成位置可以参考\entry\build\default\outputs\default\entry-default-unsigned.hap,编译后的HAP包的结构中,主要包含resources资源目录、ets代码文件目录、其他配置文件。
关于打包,更多常见问题请参考程序打包FAQ。
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
扫描工程中 .hap 结尾的文件
在HarmonyOS Next中,HAP包文件位于工程的build/default/outputs/default目录下。编译工程后,系统会自动在该目录生成对应的HAP文件。
在HarmonyOS Next中,从工程中提取HAP包文件主要有以下几种方式,具体取决于您的开发环境和构建流程:
1. 通过DevEco Studio直接构建生成
这是最直接和常用的方法。在完成代码开发后:
- 在菜单栏选择 Build > Build Hap(s)。
- 或者,在右侧的 Project 视图中,右键点击工程模块,选择 Build > Build Hap(s)。
- 构建成功后,HAP包文件默认生成在工程目录下的
build > outputs > default或build > outputs > hap > debug(调试版本) /release(发布版本) 路径中。
2. 通过命令行构建生成
您可以使用HarmonyOS SDK提供的命令行工具(如 hvigorw 或 hpm)进行构建,这适用于自动化脚本或持续集成(CI)环境。
- 在工程根目录打开命令行终端。
- 运行构建命令,例如:
# 对于AppScope和多个HAP模块的工程,在根目录执行: ./gradlew assembleHap # 或使用hvigorw hvigorw assembleHap - 构建产物同样会输出到上述
build/outputs/目录下的对应路径中。
3. 从已签名的应用包(.app)中提取
如果您已经拥有一个签名的APP包(后缀为 .app),它是一个压缩包,可以手动解压以获取其中的HAP文件。
- 将
.app文件的后缀名改为.zip。 - 使用解压工具(如系统自带的归档管理器或第三方软件)解压该ZIP文件。
- 解压后的文件夹内即包含一个或多个HAP包文件(后缀为
.hap)。
关键点说明:
- HAP位置:无论通过哪种方式构建,最终的HAP文件都位于工程模块目录的
build/outputs/子目录下,请根据构建类型(Debug/Release)和输出格式(默认或Hap)进行查找。 - 签名要求:用于正式发布或安装到真机上的HAP必须经过签名。通过DevEco Studio的 Build > Build App(s) 或生成Release版HAP时会自动使用配置的签名文件。
- 多HAP工程:如果工程包含多个模块(例如一个Entry和一个Feature),每个模块都会生成独立的HAP文件。
请根据您的具体构建场景选择相应的方法。

