欢迎访问艾立兹站 Aliz- 专注建站教程与技术分享
您当前的位置:首页 > 鸿蒙开发

鸿蒙 HarmonyOS 中 App 与 HAP 是什么?二者核心区别完整梳理

时间:2026-07-02 20:52:19  来源:阿里站  作者:SKY  阅读:

一、核心一句话总述

  1. HAP(Harmony Ability Package):后缀.hap,鸿蒙设备可直接安装、独立运行的最小功能模块,是应用运行底层单元;
  2. App Pack(日常简称 App):后缀.app上架应用市场专用打包包,不能直接安装到手机,内部封装 1 个或多个 HAP + 配置文件,是对外分发的完整应用包。

简单类比:
  • HAP = 独立零件 / 功能舱(可单独装设备运行)
  • App (.app) = 收纳所有零件的完整包装箱(仅用于上传商店,设备安装时会自动拆出 HAP)

二、分别详细定义

1、HAP 模块包(运行层)


全称 HarmonyOS Ability Package,鸿蒙应用最小可运行单元Harmo...。

两大类型

  1. entry HAP(主入口模块) 一个应用同一设备类型必须仅有 1 个 entry,是应用启动入口,包含首页、基础核心功能,可独立安装运行。
  2. feature HAP(扩展功能模块) 可选扩展模块,存放次要功能(商城、会员、短视频等),支持按需延迟下载,用户不用可暂不安装,减小初始安装包体积。

HAP 内部包含


ArkTS/JS/C++ 代码、页面资源、图片、多语言、第三方 so 库、module.json5 配置、Ability 页面逻辑。

核心特性

  • 后缀.hap
  • 电脑 hdc 命令、开发者工具可直接推送到设备安装;
  • 原子化服务、万能卡片底层均基于 HAP 实现;
  • HarmonyOS NEXT 纯血系统唯一原生运行包格式。

2、App Pack(简称 App,分发层)


后缀.app,应用上架华为应用市场 AGC 的标准交付包,无法直接安装到终端设备Huawei Dev...。

App 内部组成


1 个pack.info全局描述文件 + 多个适配不同设备的 HAP(手机 entry、平板 feature、车机模块等)。

核心特性

  • 仅用于渠道分发:应用市场、企业内部分发;
  • 市场下发给设备时,自动拆分、按需下发对应设备的 HAP;
  • 统一签名、统一包名 bundleName,管控整个应用版本;
  • 一个 App 对应一款上架应用(如微信、抖音鸿蒙版)。

三、App 与 HAP 核心区别对照表


表格
对比维度 HAP(.hap) App Pack(.app,简称 App)
文件后缀 .hap .app
层级定位 应用运行最小单元(模块) 应用分发顶层总包(容器)
能否直接安装设备 ✅ 支持,hdc / 本地调试可直接装 ❌ 不支持,必须经过应用市场解析拆分
数量关系 一个 App 里包含 1~N 个 HAP 一款上架应用对应 1 个 App 包
作用场景 本地开发调试、原子化服务、功能分拆、按需下发 上架应用市场、版本统一分发、多端统一打包
组成内容 独立业务代码、页面、资源、模块配置 所有 HAP 集合 + 全局pack.info配置
设备适配 单套设备(仅手机 / 仅车机) 多设备合一,手机 / 平板 / 手表 / 车机打包在一起
延迟加载 feature 类型 HAP 支持按需下载 仅做打包容器,无加载逻辑

四、开发流程直观理解二者关系

  1. DevEco Studio 开发,写业务代码,编译生成entry.hap、feature.hap
  2. 打包构建:把所有 HAP、全局配置打包合并为xxx.app
  3. 上传.app文件到华为应用市场 AGC 后台;
  4. 用户在应用市场下载时,服务器自动解析 app 包,只下发当前设备所需的 HAP;
  5. 手机系统安装对应 HAP,启动应用。

五、高频混淆点澄清

误区 1:App 就是手机桌面图标应用,HAP 是子功能


纠正:桌面图标对应的完整应用逻辑,底层就是 entry 类型 HAP;App (.app) 只是上架打包文件,用户看不到。

误区 2:二者二选一,只能用一种格式


纠正:开发调试用 HAP,上架分发必须打包成 App,二者是上下游关系,不是二选一。

误区 3:HarmonyOS NEXT 可以只上传 HAP 到应用市场


纠正:纯血鸿蒙同样要求上传.app总包,禁止直接上传 hap 文件上架。

误区 4:一个应用只能有一个 HAP


纠正:复杂应用可 1 个 entry + N 个 feature HAP,功能拆分、按需安装,降低初始安装体积。

六、典型实操场景

  1. 本地调试开发 电脑连接手机,用 hdc install xxx_entry.hap,直接安装运行,不用打包 app。
  2. 小型工具类应用 仅 1 个 entry HAP,打包后 app 内部只包含这一个 hap,最简结构。
  3. 大型多端综合 App 手机 entry、平板 feature、车机独立 HAP,全部打包进同一个.app 上架。
  4. 原子化服务卡片 免安装卡片底层是独立小型 HAP,随主 App 包分发,触发时按需下载。

七、延伸配套包简单区分(避坑)

  1. HAR:静态共享代码资源包,编译时合并进 HAP,不单独运行;
  2. HSP:动态共享包,随 App 分发,多个 HAP 共用减少包体积;
  3. HAP:可独立运行模块;
  4. App (.app):多 HAP 打包分发总包。

八、总结

  1. HAP 是运行实体:设备真正安装、执行代码的最小模块,分主入口 entry 和扩展 feature;
  2. App (.app) 是分发容器:仅用于上架市场,内部封装全部 HAP,无法直接安装;
  3. 开发调试操作 HAP,上架发布打包 App,二者层级不同、用途完全分开;
  4. HarmonyOS NEXT 纯血系统完全依赖 HAP 运行,不再兼容安卓 APK,理清二者是鸿蒙开发基础。


本文为aliz.cn原创鸿蒙开发教程,转载请保留原文链接。

 

本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载

发表评论 共有0条评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
公众号二维码

扫码关注公众号
获取全套技术教程