HarmonyOS应用程序包概述

1、应用与应用程序包

  • 什么是应用?

    所谓应用泛指运行在设备操作系统上,为用户提供的服务的程序。例:手机桌面上安装的一个个应用,微信、支付宝等。

  • 什么是应用程序包?

    一个应用对应的软件包文件。HarmonyOS使用 .hap 格式作为应用程序包,包含了资源、代码。Android使用.apk格式作为应用程序包,包含了资源、代码、配置文件。

我们的操作系统为我们提供了安装、卸载、更新的管理机制。系统也帮助我们屏蔽了不同的芯片平台的差异(x86/ARM,32位/64位等)。开发者更多聚焦于应用功能的实现。

2、多Module设计机制

  • 支持模块化开发

    将不同功能特性按照模块划分和管理,每一个功能模块作为一个独立的Module进行开发,Module可独立编译运行。模块化、松耦合的应用管理方式有助于应用的开发、维护与扩展。

  • 支持多设备适配

    每个Module都会标注所支持的设备类型,有些Module支持全部的设备类型,有些Module只支持一种或者几种设备。在应用市场分发应用包时,根据设备类型做精准的筛选和匹配,将不同的包合理的组合和部署到对应的设备上。

3、Module类型

  • Ability类型的Module

    编译后会生成一个.hap文件,HAP(Harmony ability package)包,可独立运行,有以下两种类型:

    • entry类型的Module:

      应用的主模块,包含入口,编译后会生成entry类型的HAP。

    • feature类型的Module:

      应用的动态模块,编译后会生成feature类型的HAP。

  • Library类型的Module

    用于实现代码和资源的共享。同一个Library类型的Module可以被其他的Module多次引用。有以下两种类型:

    • Static Library:静态共享库。编译后会生成一个以.har为后缀的文件,HAR(Harmony Archive Package)。
    • Shared Library:动态共享库。编译后会生成一个以.hsp为后缀的文件,HSP(Harmony Shared Package)。

静态共享库HAR和动态共享库HSP的区别:

包类型 编译和运行方式 发布和引用方式
HAR 代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。 支持应用内引用,还可以独立打包发布,供其他应用引用。
HSP 代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。 应用内HSP只支持应用内引用。

HAR和HSP在APP包中的形态示意图:

相关推荐
摘星编程11 小时前
React Native鸿蒙版:Drawer抽屉导航实现
react native·react.js·harmonyos
lbb 小魔仙12 小时前
【Harmonyos】开源鸿蒙跨平台训练营DAY9:获取分类数据并渲染
flutter·华为·harmonyos
mocoding12 小时前
Flutter 3D 翻转动画flip_card三方库在鸿蒙版天气预报卡片中的实战教程
flutter·3d·harmonyos
2501_9209317012 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
qq_1777673715 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos
烬头882115 小时前
React Native鸿蒙跨平台应用实现了onCategoryPress等核心函数,用于处理用户交互和状态更新,通过计算已支出和剩余预算
前端·javascript·react native·react.js·ecmascript·交互·harmonyos
小雨青年16 小时前
鸿蒙 HarmonyOS 6 | 系统能力 (06) 构建现代化通知体系 从基础消息到实况
华为·harmonyos
木斯佳16 小时前
HarmonyOS 6实战(源码解析篇):音乐播放器的音频焦点管理(上)——AudioSession与打断机制
华为·音视频·harmonyos
2601_9495936517 小时前
基础入门 React Native 鸿蒙跨平台开发:卡片组件
react native·react.js·harmonyos
qq_1777673718 小时前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos