【HarmonyOSNext应用开发全攻略】从包结构解析到上架部署一站式指南

举报
Turing_010 发表于 2025/06/07 09:03:06 2025/06/07
【摘要】 【HarmonyOSNext应用开发全攻略】从包结构解析到上架部署一站式指南##Harmony OS Next ##Ark Ts ##教育本文适用于教育科普行业进行学习,有错误之处请指出我会修改。📦 一、应用与应用程序包小课堂1️⃣ 什么是应用?👉 就是你在手机/平板上用的各种App啦!比如微信、抖音这些~2️⃣ 应用程序包是啥?👉 相当于App的"安装包",后缀是.hap/.hsp...

【HarmonyOSNext应用开发全攻略】从包结构解析到上架部署一站式指南

##Harmony OS Next ##Ark Ts ##教育
本文适用于教育科普行业进行学习,有错误之处请指出我会修改。

📦 一、应用与应用程序包小课堂
1️⃣ 什么是应用?
👉 就是你在手机/平板上用的各种App啦!比如微信、抖音这些~
2️⃣ 应用程序包是啥?
👉 相当于App的"安装包",后缀是.hap/.hsp/.har这些格式
3️⃣ 系统超贴心功能:
✅ 跨芯片支持(x86/ARM通吃!)
✅ 全生命周期管理(安装/更新/卸载一条龙)
✅ 开发者只需专注功能实现

🔧 二、超实用的多Module设计
🚀 为什么需要多Module?
▸ 场景1:模块化开发
把不同功能拆分成独立Module(比如登录模块、支付模块),就像乐高积木一样自由组合!

▸ 场景2:多设备适配
不同Module可以标注支持的设备类型,系统会智能匹配:

// 示例:配置支持设备类型
"deviceTypes": ["phone", "tablet"]

🎁 三、Module类型大揭秘
💎 Ability类型Module(生成.hap文件)

类型 功能说明 数量限制
entry 主模块!包含启动图标和核心功能 同类设备仅1个
feature 动态扩展功能模块 不限量

📚 Library类型Module(共享代码神器)

类型 文件后缀 特点说明
Static .har 静态共享,多处引用会重复打包
Shared .hsp 动态共享,进程内只存一份

⚠️ 超重要提醒:
开发HAR时记得开启混淆保护代码!在build-profile.json里配置:

"buildTypes": [{
  "name": "release",
  "proguard": true
}]

🌈 四、HAR vs HSP终极对比表

编译方式 运行方式 发布范围
HAR 随使用方编译,多副本存在 静态加载 跨应用可用
HSP 独立编译,单副本运行 动态加载 应用内/集成态可用

💡 小贴士:
HSP开发时会同时生成.hsp和.har文件,后者是接口文件哦~ 就像奶茶的吸管和杯盖都要有才能喝到!🥤

📂 一、开发态包结构大拆解
👉 创建项目后你的工程会长这样:

MyProject/
├── AppScope/          # 系统自动生成❗不可修改
│   ├── app.json5      # 应用全局配置(名字/图标等)
│   └── resources/     # 全应用共享资源
└── Module_name/       # 你的功能模块(可自定义命名)
    ├── src/main/
    │   ├── ets/       # 代码主战场💻
    │   ├── resources/ # 模块专属资源
    │   └── module.json5 # 模块身份证(设备类型/权限等)
    └── 构建家族文件:
        ├── build-profile.json5  # 构建配置(签名/产品配置)
        ├── hvigorfile.ts        # 构建任务指挥官⚙️
        ├── obfuscation-rules.txt# 代码保护盾🛡️(混淆规则)
        └── oh-package.json5     # 依赖库清单📦

🔨 二、编译魔法时刻
从开发态到编译态的神奇变化:

// 编译前
ets/.ets文件
resources/ → 原始资源

// 编译后 🔮
ets/.abc文件(字节码)
resources/ → 合并AppScope资源(同名文件AppScope优先)

⚠️ 重要规则:

  • 多个HAR会被直接打包进HAP/HSP
  • 模块配置文件会融合AppScope的全局配置

🚚 三、发布上架全流程
1️⃣ 打包成.app文件(应用市场专用)
2️⃣ 自动生成pack。info(内含所有模块信息)
3️⃣ 应用市场分发时:

graph TD
    A[用户下载.app] --> B[云端拆解HAP/HSP]
    B --> C[设备端按需安装]

📦 四、三大包类型终极对比

能力维度 HAP HAR HSP
独立安装运行
声明UI组件
包含资源文件
依赖其他共享包

💡 隐藏技巧:

// HAR也可以包含页面!用命名路由跳转:
router.pushUrl({ name: 'harPage' })

⚠️ 避坑指南:

  1. HAR如果依赖了HSP → 只能应用内使用❗
  2. 禁止循环依赖和依赖传递🔄
  3. 开发HAR必开混淆保护:
// build-profile.json5
"buildTypes": [{
  "name": "release",
  "proguard": true // 开启保护模式🔒
}]

🌈 五、选包策略速查表

使用场景 推荐方案 优点
基础功能模块 HAP 独立运行,功能完整
跨团队代码复用 HAR 支持发布到三方仓库📤
多模块共享相同代码 HSP 节省空间,动态加载⚡
需要声明UI组件 HAP 唯一支持类型🎨
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。