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内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

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

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

鸿蒙面经

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

相关推荐
Lill_bin10 小时前
Ribbon简介
分布式·后端·spring cloud·微服务·云原生·ribbon
OH五星上将10 小时前
如何编译OpenHarmony SDK API
嵌入式硬件·移动开发·api·sdk·harmonyos·openharmony·鸿蒙开发
Zy_blog12 小时前
【kafka】消息队列
分布式·kafka
像风一样自由202012 小时前
深入了解HarmonyOS(鸿蒙操作系统)
华为·harmonyos
青瓷看世界12 小时前
华为HarmonyOS地图服务 -- 如何实现地图呈现?-- HarmonyOS自学8
华为·harmonyos
看山还是山,看水还是。12 小时前
鸿蒙OS 线程间通信
android·java·开发语言·笔记·华为·c#·harmonyos
.生产的驴14 小时前
SpringBoot 消息队列RabbitMQ 消息转换器 改变消息的发送格式 节省内存
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
编程经验分享14 小时前
Windows 安装 ZooKeeper 以及 IDEA 安装 zoolytic 连接工具
分布式·zookeeper·云原生
codes2345778914 小时前
鸿蒙开发之ArkTS 基础四 函数
华为·移动开发·harmonyos·arkts·deveco-studio·arkts常见数据类型
青瓷看世界14 小时前
华为地图服务 - 如何开启和展示“我的位置”? -- HarmonyOS自学10
华为·harmonyos