对比HarmonyOS 与 Android 的应用程序包
HarmonyOS 的应用程序包与 Android 的应用程序包在多个方面存在一些不同之处,主要体现的方面:
- 包格式(从包的后缀名可以看出来)
- HarmonyOS : 使用
.hap
格式作为应用程序包。这个格式是 HarmonyOS 的专有格式,包含了应用的所有资源和代码。 - Android : 使用
.apk
格式作为应用程序包。APK 文件包含了应用的代码、资源、清单文件等。
- 架构设计
- HarmonyOS: 采用了分布式架构,支持多设备协同。应用可以在不同类型的设备(如手机、电视、穿戴设备等)之间共享和运行。
- Android: 主要针对单一设备的运行,虽然 Android 也支持多屏协同,但其设计初衷是单一设备的应用。
- 组件化
- HarmonyOS: 提供了更强的组件化支持,允许开发者将应用拆分为多个功能模块,这些模块可以独立运行和调用。
- Android: 虽然也支持模块化开发,但在组件化和跨设备共享方面支持较弱。
- 权限管理
- HarmonyOS: 采用了更细粒度的权限管理机制,旨在提高用户的隐私保护。
- Android: 也有权限管理机制,但在实现上可能与 HarmonyOS 有所不同。
- 开发工具和语言
- HarmonyOS: 使用 ArkTS 和 JavaScript 作为主要开发语言,开发工具包括 DevEco Studio。
- Android: 主要使用 Java 和 Kotlin 作为开发语言,开发工具主要是 Android Studio。
- 生态系统
- HarmonyOS: 强调与其他华为设备的生态协同,提供了分布式能力,允许应用在多个设备间无缝切换和协作。
- Android: 拥有广泛的第三方应用生态,但不如 HarmonyOS 在设备间的无缝协同方面表现突出。
HarmonyOS 和 Android 都是现代移动操作系统,并且在某些方面有相似之处,但它们在应用程序包格式、架构设计、组件化、开发工具和权限管理等方面存在显著差异。
鸿蒙系统提供了应用程序包开发、安装、查询、更新、卸载的管理机制,便于开发者开发和管理应用。同时,系统还屏蔽了不同的芯片平台的差异(包括x86/ARM,32位/64位等),应用程序包在不同的芯片平台都能够安装运行,这使得开发者可以聚焦于应用的功能实现。贯彻了"一次开发,多端部署"的开发理念 。
2. 介绍HarmonyOS多Module设计机制
在我们日常的开发中,会将繁重和复杂的逻辑通过组件区分,也可以说是按照模块化去区分,将功能进行独立开,松耦合能够使得系统更加灵活,提高可复用性。将复杂系统拆分为小的、易于管理的模块,有助于理解和设计整个系统。
HarmonyOS多Modules设计机制的两大特点:
- 支持模块化开发
- 支持多设备适配
3. 介绍Modules类型
应用包
HAP应用包(HarmonyOS Application Package)是用于打包和分发完整应用程序的文件格式。它包含应用的所有代码、资源和配置。
HAP包特点:
- 跨设备支持: HAP 包可以在不同类型的 HarmonyOS 设备(如手机、平板、电视等)上运行,支持分布式应用开发。
- 模块化: 支持将应用拆分为多个模块,通过共享模块(如 HAR 和 HSP)实现功能复用。
- 简化的发布和更新: 开发者可以通过 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内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!
鸿蒙【北向应用开发+南向系统层开发】文档
鸿蒙【基础+实战项目】视频
鸿蒙面经
为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!