Module、HAP、Ability、AbilitySta-ge、Context……您是否曾经被这些搞不懂又绕不开的知识点困扰?

现在,全新的《运用程序包基础知识》及《运用模型开发攻略》为您答疑解惑!

这里有您重视的概念解析、原理机制阐述,也有丰厚的场景化开发辅导,快来体会吧~

运用程序包基础知识:

developer.harmonyos.com/cn/docs/doc…

一、基本概念解析

新版文档中的知识点,介绍更全面,逻辑更清晰,供给了各类基本概念解析,协助开发者更快学习、掌握体系才能。以下是新版文档部分概念展现。

1、HAP是什么?

开发者通过DevEco Studio把运用程序编译为一个或者多个.hap后缀的文件,即HAP(Harmony Ability Package)。HAP是HarmonyOS运用装置的基本单位,包括了编译后的代码、资源、三方库及装备文件。HAP可分为Entry和Feature两种类型。

1)Entry类型的HAP:是运用的主模块,在module.json5中的type特点装备为entry类型。在同一个运用中,同一设备类型只支持一个Entry类型的HAP,一般用于完结运用的进口界面、进口图标、主特性功用等。

2)Feature类型的HAP:是运用的动态特性模块,在module.json5中的type特点装备为feature类型。一个运用程序包可以包括一个或多个Feature类型的HAP,也可以不包括;Feature类型的HAP一般用于完结运用的特性功用,可以装备成按需下载装置,也可以装备成随Entry类型的HAP一同下载装置(请拜见module方针内部结构中的“deliveryWithInstall”)。

2、Module是什么?

在DevEco Studio工程目录中,一个HAP对应一个Module。

Module是指DevEco Studio工程中的功用单元。一个DevEco Studio工程可以包括多个Module,一起Module分为“Ability”、“Library”两种类型。此处的HAP对应“Ability”类型的Module;下文行将介绍的HAR(Harmony Ability Resources)包对应“Library”类型的Module。

3、Bundle是什么?

每个HarmonyOS运用可以包括多个.hap文件,这些.hap文件合在一同称为一个Bundle,每个运用都有一个BundleName。在每台设备上,已装置运用的BundleName是仅有的。需求特别说明的是:在运用上架到运用商场时,需求把运用包括的一切.hap文件(即Bundle)打包为一个.app后缀的文件用于上架,这个.app文件称为App Pack(Application Package),其间一起包括了描述App Pack特点的pack.info文件;但是,在云端分发和端侧装置时,都是以HAP为单位进行分发和装置的。

4、Ability组件概述

Ability组件是一种包括用户界面的运用组件,用于与用户交互。Ability组件是体系调度的基本单元,为运用供给制作界面的窗口;一个Ability组件中可以通过多个页面来完结一个模块功用。

主张将不同模块功用拆解为不同的Ability组件单独完结,行将一个独立的功用模块放到一个Ability组件中,以多页面的方式出现。每一个Ability组件实例,都对应于一个使命,可以在最近使命列表中出现。

在开发态,一个Module可以包括一个或多个Ability组件,如下图所示。

应用模型开发指南上新介绍
Module与Ability组件关系示意图

更多文档信息,请拜访:

developer.harmonyos.com/cn/docs/doc…

二、原理机制解读

必要的原理、机制解读,让开发者“知其然,知其所以然”。

为让咱们更好的理解体系工作原理,咱们运用举例、图文结合等方式来详细解读原理机制。接下来,咱们以Ability组件发动形式—specified为例进行介绍。

specified(指定实例形式),在Ability实例创立之前,答应开发者为该实例创立一个仅有的字符串Key,创立的Ability实例绑定Key之后,后续每次调用startAbility()办法时,都会问询运用运用哪个Key对应的Ability实例来呼应startAbility请求。运行时由Ability内部事务决议是否创立多实例,假如匹配有该Ability实例的Key,则直接拉起与之绑定的Ability实例,不然创立一个新的Ability实例。

例如用户在运用中重复打开同一个文档时,发动的均是最近使命列表中的同一个使命。以及在运用中重复新建文档时,发动的均是最近使命列表中新的使命。这种情况下可以将Ability装备为specified(指定实例形式)。

应用模型开发指南上新介绍
指定实例形式演示作用

更多文档信息,请拜访:

developer.harmonyos.com/cn/docs/doc…

三、场景化开发辅导

本次还补充/完善了20+个开发场景辅导,只为让文档更贴近实践开发活动,助力开发者高效开发。以下为部分场景展现。

1、怎么完结Ability组件与UI数据同步

本次按场景供给了具体的开发辅导,首要包括:

运用EventHub进行数据通信:EventHub供给了Ability组件/ExtensionAbility组件等级的事情机制,以Ability组件/ExtensionAbility组件为中心供给了订阅、取消订阅和触发事情的数据通信才能。

运用globalThis进行数据同步:globalThis是ArkTS引擎实例内部的一个大局方针,引擎实例下的Ability/Page都可以运用,因而可以运用globalThis大局方针进行数据同步。

2、跨Ability组件跳转

详细的场景化开发辅导,首要包括:

发动运用内的Ability:当一个运用内包括多个Ability时,存在运用内发动Ability的场景。

发动运用内的Ability并获取回来成果:在一个EntryAbility发动别的一个FuncAbility时,期望在被发动的FuncAbility完结相关事务后,能将成果回来给调用方。例如在运用中将进口功用和帐号登录功用分别设计为两个独立的Ability,在帐号登录Ability中完结登录操作后,需求将登录的成果回来给进口Ability。

发动其他运用的Ability:发动其他运用的Ability,一般用户只需求完结一个通用的操作(例如需求挑选一个文档运用来检查某个文档的内容信息),引荐运用隐式Want发动。体系会依据调用方的want参数来辨认和发动匹配到的运用Ability。

发动其他运用的Ability并获取回来成果:当运用隐式Want发动其他运用的Ability并期望获取回来成果时,调用方需求运用startAbility-ForResult()办法发动方针Ability。

发动Ability的指定页面:一个Ability可以对应多个页面,在不同的场景下发动该Ability时需求展现不同的页面,例如从一个Ability的页面中发动别的一个Ability时,期望发动该Ability的指定页面。本文首要解说方针Ability初次发动和方针Ability非初次发动两种发动指定页面的场景,以及在解说发动指定页面之前会解说到在调用方怎么指定发动页面。

更多文档信息,请拜访:

developer.harmonyos.com/cn/docs/doc…

四、咱们等待您的反应

以上就是本期文档君为咱们准备的HarmonyOS运用程序包基础知识及运用模型开发攻略上新内容,期望可以协助开发者更高效的探索、体会、上手HarmonyOS。

一起,咱们十分重视开发者的意见,欢迎各位开发者在HarmonyOS运用开发官网活跃反应意见,协助咱们继续提高文档体会。

咱们将继续改善文档体会、丰厚和完善内容,感谢各位开发者的支持及信赖,您的满足是咱们继续提高文档体会的方针和动力。

敬请等待HarmonyOS开发者公众号更多相关推送,获取最新文档和内容资源!

应用模型开发指南上新介绍