鸿蒙三层架构,鸿蒙模块依赖、鸿蒙依赖模块,鸿蒙hap、鸿蒙hsp、鸿蒙har

一、产品定制层、基础特性层、公共能力层

1.1、产品定制层:product

        应用的入口,

1.2、基础特性层:feature

        业务:首页、我的

1.3、公共能力层:common

        方法能力复用

​​​​​​​一次开发,多段部署

        3层架构的包,可以是har包,也可以是hsp包 

        har静态共享包

不支持依赖循环、A模块依赖B模块,B模块依赖A模块

不支持依赖传递,即:A模块依赖B模块,B模块依赖C模块

可以发三方库,

        hsp动态共享包

        多个hap/hsp共用的代码和资源放在一个HSP中,可以提高代码、资源的可重用性,只需要一份hsp包,减少了app的空间 

不能发三方库

hsp拷贝一份,har会拷贝多份

二、项目中,使用三层架构步骤:

2.1、新建3个目录:product、features、common

2.2、分别在common中,新建1个模块,且选择hsp包,模块名可以命名为:basic

2.3、分别在features中,新建1个模块,且选择hsp包,模块名可以命名为:home、mine、login

2.4、product入口,汽车端,平板端,把默认的entry文件夹,移到该目录下,并重命名为:phone;

如果要在此目录新建平板端的项目,需要新建模块,并且选择hap包,因为只有hap才有页面

调出运行配置,将 deploy multi hap => deploy multi hap packages 勾上,并且下拉出来的选框,都勾上

三、模块之间依赖

        在common中,想新建一个head的公共组件,phone模块想依赖这个组件,分2步

3.1、在common => index 文件中,先要导出head组件:




export *from './src/main/ets/components/Head'




注意:Head要有export关键字

3.2、在phone => oh-package.json5文件中,设置依赖:

依赖前:

{
  "name": "phone",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "Index.ets",
  "author": "",
  "license": "Apache-2.0",
  "packageType": "InterfaceHar",
  "dependencies": {
  }
}

依赖后:

{
  "license": "",
  "devDependencies": {},
  "author": "",
  "name": "phone",
  "description": "Please describe the basic information.",
  "main": "",
  "version": "1.0.0",
  "dependencies": {

    '@zjian/basic': 'file:../../common/basic'
    //格式:@zjian表示组织,basic表示业务名称
  }
}

完成

<think>好的,我现在需要帮助用户了解如何将鸿蒙系统的三层架构项目打包成HAP文件。首先,我需要回忆一下鸿蒙系统的架构和相关打包流程。根据用户提供的引用内容,特别是引用[1],里面提到在Stage模型中,Ability module会被编译成HAP文件。而三层架构可能指的是应用层、应用框架层和系统服务层,但在开发中更常见的是模块化结构,如entry、feature、library等。 接下来,我需要确定用户所说的“三层架构”具体指什么。可能是指项目的模块划分,比如entry(入口模块)、feature(功能模块)、library(共享库模块)。根据引用[1],每个module可以独立编译,Ability module会生成HAP,而Library module生成HSPHAR。所以,打包HAP的关键在于正确配置Ability模块。 然后,我需要整理步骤。首先确认项目结构是否符合标准,比如entry模块是否正确配置。其次,检查每个模块的build-profile.json文件,确保abilities和moduleType正确。然后使用DevEco Studio的构建命令,或者命令行工具进行打包。最后验证生成的HAP文件。 同时,用户可能遇到的问题包括模块配置错误、依赖未正确添加等,需要提醒注意这些点。此外,引用[3]提到ArkTS的限制,如果用户代码中有TypeScript的不兼容特性,可能会影响编译,需要检查代码是否符合ArkTS规范。 最后,生成相关问题时要围绕HAP打包、模块化配置、依赖管理、优化方法等方面,帮助用户深入理解整个过程。</think>### 鸿蒙 HarmonyOS 三层架构打包 HAP 文件方法步骤 鸿蒙HarmonyOS)的三层架构通常指**应用层、应用框架层、系统服务层**。在开发中,**HAP 文件是应用层模块的打包产物**,包含 UI 界面、业务逻辑和资源。以下是基于 Stage 模型的打包步骤: --- #### **1. 项目结构标准化** - **应用层模块(Ability Module)**:如 `entry` 模块,需配置为 HAP 类型。 - **功能模块(Feature Module)**:如 `feature`,可独立编译为 HAP依赖库。 - **共享库模块(Library Module)**:如 `library`,编译为 HARHSP 供其他模块调用[^1]。 --- #### **2. 配置模块类型** 在模块的 `build-profile.json` 文件中明确类型: ```json // entry/build-profile.json { "module": { "name": "entry", "type": "entry", // 标记为入口模块 "srcEntrance": "./src/main/ets", "description": "主模块", "deviceTypes": ["default", "tablet"], "abilities": [ { "name": ".MainAbility", "icon": "$media:icon", "label": "MyApp" } ] } } ``` 若为功能模块,`type` 可设为 `feature`。 --- #### **3. 构建 HAP 文件** - **方式一:通过 DevEco Studio** 1. 右键点击目标模块(如 `entry`) 2. 选择 **Build > Build HAP(s)** 3. 产物生成在 `build/default/outputs/default/entry-default-signed.hap` - **方式二:命令行构建** ```bash # 进入项目根目录 cd /path/to/project # 执行构建命令 hvigor assembleHap ``` --- #### **4. 验证 HAP 文件** - 使用 **DevEco Studio 的 Device Manager** 安装 HAP 文件到模拟器/真机。 - 通过 `hdc` 工具手动安装: ```bash hdc install entry-default-signed.hap ``` --- #### **注意事项** 1. **依赖管理**:若模块依赖 HAR/HSP,需在 `oh-package.json` 中声明: ```json { "dependencies": { "@library/utils": "file:../library" } } ``` 2. **ArkTS 语法限制**:确保代码符合 ArkTS 规范(如无 `any` 类型、禁用 `var` 等)[^3]。 3. **资源冲突**:多个模块的同名资源需通过资源别名或分层目录避免覆盖。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jian11058

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值