欧洲世界杯_06年世界杯梅西 - hello186.com

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

2025-12-05 11:40:45 世界杯重播 9382

【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' })

⚠️ 避坑指南:

HAR如果依赖了HSP → 只能应用内使用❗

禁止循环依赖和依赖传递🔄

开发HAR必开混淆保护:

// build-profile.json5

"buildTypes": [{

"name": "release",

"proguard": true // 开启保护模式🔒

}]

🌈 五、选包策略速查表

使用场景

推荐方案

优点

基础功能模块

HAP

独立运行,功能完整

跨团队代码复用

HAR

支持发布到三方仓库📤

多模块共享相同代码

HSP

节省空间,动态加载⚡

需要声明UI组件

HAP

唯一支持类型🎨