HarmonyOS开发5.0【应用程序包】

对比HarmonyOS 与 Android 的应用程序包

HarmonyOS 的应用程序包与 Android 的应用程序包在多个方面存在一些不同之处,主要体现的方面:

  1. 包格式(从包的后缀名可以看出来)
  • HarmonyOS : 使用 .hap 格式作为应用程序包。这个格式是 HarmonyOS 的专有格式,包含了应用的所有资源和代码。
  • Android : 使用 .apk 格式作为应用程序包。APK 文件包含了应用的代码、资源、清单文件等。
  1. 架构设计
  • HarmonyOS: 采用了分布式架构,支持多设备协同。应用可以在不同类型的设备(如手机、电视、穿戴设备等)之间共享和运行。
  • Android: 主要针对单一设备的运行,虽然 Android 也支持多屏协同,但其设计初衷是单一设备的应用。
  1. 组件化
  • HarmonyOS: 提供了更强的组件化支持,允许开发者将应用拆分为多个功能模块,这些模块可以独立运行和调用。
  • Android: 虽然也支持模块化开发,但在组件化和跨设备共享方面支持较弱。
  1. 权限管理
  • HarmonyOS: 采用了更细粒度的权限管理机制,旨在提高用户的隐私保护。
  • Android: 也有权限管理机制,但在实现上可能与 HarmonyOS 有所不同。
  1. 开发工具和语言
  • HarmonyOS: 使用 ArkTS 和 JavaScript 作为主要开发语言,开发工具包括 DevEco Studio。
  • Android: 主要使用 Java 和 Kotlin 作为开发语言,开发工具主要是 Android Studio。
  1. 生态系统
  • HarmonyOS: 强调与其他华为设备的生态协同,提供了分布式能力,允许应用在多个设备间无缝切换和协作。
  • Android: 拥有广泛的第三方应用生态,但不如 HarmonyOS 在设备间的无缝协同方面表现突出。

HarmonyOS 和 Android 都是现代移动操作系统,并且在某些方面有相似之处,但它们在应用程序包格式、架构设计、组件化、开发工具和权限管理等方面存在显著差异。

鸿蒙系统提供了应用程序包开发、安装、查询、更新、卸载的管理机制,便于开发者开发和管理应用。同时,系统还屏蔽了不同的芯片平台的差异(包括x86/ARM,32位/64位等),应用程序包在不同的芯片平台都能够安装运行,这使得开发者可以聚焦于应用的功能实现。贯彻了"一次开发,多端部署"的开发理念 。

2. 介绍HarmonyOS多Module设计机制

在我们日常的开发中,会将繁重和复杂的逻辑通过组件区分,也可以说是按照模块化去区分,将功能进行独立开,松耦合能够使得系统更加灵活,提高可复用性。将复杂系统拆分为小的、易于管理的模块,有助于理解和设计整个系统。

HarmonyOS多Modules设计机制的两大特点:

  1. 支持模块化开发
  2. 支持多设备适配

3. 介绍Modules类型

应用包

HAP应用包(HarmonyOS Application Package)是用于打包和分发完整应用程序的文件格式。它包含应用的所有代码、资源和配置。

HAP包特点:

  1. 跨设备支持: HAP 包可以在不同类型的 HarmonyOS 设备(如手机、平板、电视等)上运行,支持分布式应用开发。
  2. 模块化: 支持将应用拆分为多个模块,通过共享模块(如 HAR 和 HSP)实现功能复用。
  3. 简化的发布和更新: 开发者可以通过 HAP 包简化应用的发布和更新流程,用户也可以轻松下载和安装应用。

HAP包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个HAP包。 HAP包的类型有两种:

  • entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,只能包含唯一一个entry类型的HAP
  • Library类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。

共享包

共享包是用于存储和共享特定功能或资源的包,可以被多个应用或模块引用。主要包括 HAR(HarmonyOS Application Resource)和 HSP(HarmonyOS Service Package)

  • HAR:静态资源库。用于存储应用资源的包,主要包括应用的布局、图片、字符串和其他资源文件。HAR 包适合在多个应用之间共享静态资源。在大型应用中,可以将常用资源打包成 HAR 包,便于管理和复用。
  • HSP:动态共享库。用于存储服务的包,主要包括与后端服务交互的逻辑和相关的代码。HSP 包通常包含业务逻辑和服务接口,可以被多个应用调用。HSP 包适合在多个应用之间共享服务逻辑,例如网络请求、数据处理和业务逻辑。

4. Stage模型应用程序包

编译态包的结构

在上述内容中介绍了后缀名.hap(应用包)、.har(静态资源库)、.hsp(动态共享库)的文件,也就是不同类型的Module编译后会生成对应的HAP、HAR、HSP等文件。

华为开发者学堂上的这个图非常直观:

5. 总结

在了解应用的设计机制、应用程序包结构等基础知识后,我们将基于Stage模型开发。除了Stage模型,HarmonyOS在API7开始支持FA模型,目前已经不再主推。

以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!

下面是鸿蒙的完整学习路线 ,展示如下:

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!

相关推荐
少年的云河月10 分钟前
OpenHarmony 5.0版本视频硬件编解码适配
音视频·harmonyos·视频编解码·openharmony·codec hdi
猿java19 分钟前
一个HTTP请求,对方竟然知道我在哪个国家?
java·分布式·面试
小马爱打代码25 分钟前
分布式和微服务的区别
分布式·微服务·架构
爱编程的王小美1 小时前
Kafka基础知识
分布式·kafka
stormsha2 小时前
使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构
分布式·架构·kafka
百年孤独百年3 小时前
Ollama调用多GPU实现负载均衡
分布式·大模型·负载均衡·llama·ollama·deepseek
掘金-我是哪吒5 小时前
分布式微服务系统架构第99集:缓存系统的实战级优化案例
分布式·缓存·微服务·云原生·架构
__Benco9 小时前
OpenHarmony子系统开发 - 热管理(一)
人工智能·harmonyos
HMS Core10 小时前
鸿蒙版小红书如何让图库访问完全由“你”掌控
安全·华为·harmonyos
SuperHeroWu710 小时前
【HarmonyOS 5】鸿蒙中如何使用MQTT
mqtt·华为·harmonyos