当前位置: 首页 > article >正文

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等文件。

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

1

5. 总结

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

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

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

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

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

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

鸿蒙面经

2

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


http://www.kler.cn/news/302711.html

相关文章:

  • AI大模型的架构演进与最新发展
  • git解决同时编辑一个文件的冲突
  • 设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)
  • 【Python】Python办公自动化案例(一):对比两个word文档并找出不同
  • Vue的slot插槽(默认插槽、具名插槽、作用域插槽)
  • 零宽字符应用场景及前端解决方案
  • 面试真题 | web自动化关闭浏览器,quit()和close()的区别
  • SpringBoot之基础Web开发
  • ubuntu22安装docker
  • iPhone 16正式亮相:5款配色 群青色抢眼
  • C++ 中的默认删除特征:管理资源与防止意外拷贝
  • 【通俗理解】二项分布的均值与方差——从成功与失败的概率看分布
  • python如何加速计算密集型任务2?
  • 【C#】DrawCurve的用法
  • 【C++开发中使用JSON的妙用】
  • JVM——Java虚拟机内存初识(面经篇之JVM内存)
  • Gin 自带日志系统:深入理解与自定义
  • 【VUE】实现当前页面刷新,刷新当前页面的两个方法(如何在一个页面写一个方法提供给全局其他地方调用)(如何重复调用同一个路由实现页面的重新加载)
  • Unity 给模型贴上照片
  • 软件测试工程师面试整理-测试类型
  • vue+IntersectionObserver + scrollIntoView 实现电梯导航
  • 【机器人建模和控制】读书笔记
  • 中秋节了,送大家一个月饼
  • 浙大数据结构:04-树5 Root of AVL Tree
  • 【C++\Qt项目实战】俄罗斯方块
  • iOS 15推出后利用邮件打开率的7种方法
  • 向量空间与函数空间的类比分析
  • Linux入门攻坚——32、Mini Linux制作
  • oracle 条件取反
  • Elasticsearch介绍以及solr对比