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

module、hap、ability、abilitysta-ge、context……您是否曾经被这些搞不懂又绕不开的知识点困扰?
现在,全新的《应用程序包基础知识》及《应用模型开发指南》为您答疑解惑!
这里有您关注的概念解析、原理机制阐述,也有丰富的场景化开发指导,快来体验吧~
应用程序包基础知识:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-v3/application-package-overview-0000001478181125-v3

基本概念解析
新版文档中的知识点,介绍更全面,逻辑更清晰,提供了各类基本概念解析,帮助开发者更快学习、掌握系统能力。以下是新版文档部分概念展示。
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组件关系示意图
更多文档信息,请访问:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-v3/uiability-overview-0000001477980929-v3

原理机制解读
必要的原理、机制解读,让开发者“知其然,知其所以然”。
为让大家更好的理解系统工作原理,我们使用举例、图文结合等方式来详细解读原理机制。接下来,我们以ability组件启动模式—specified为例进行介绍。
specified(指定实例模式),在ability实例创建之前,允许开发者为该实例创建一个唯一的字符串key,创建的ability实例绑定key之后,后续每次调用startability()方法时,都会询问应用使用哪个key对应的ability实例来响应startability请求。运行时由ability内部业务决定是否创建多实例,如果匹配有该ability实例的key,则直接拉起与之绑定的ability实例,否则创建一个新的ability实例。
例如用户在应用中重复打开同一个文档时,启动的均是最近任务列表中的同一个任务。以及在应用中重复新建文档时,启动的均是最近任务列表中新的任务。这种情况下可以将ability配置为specified(指定实例模式)。
指定实例模式演示效果
更多文档信息,请访问:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-v3/uiability-launch-type-0000001428061476-v3

场景化开发指导
本次还补充/完善了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非首次启动两种启动指定页面的场景,以及在讲解启动指定页面之前会讲解到在调用方如何指定启动页面。
更多文档信息,请访问:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-v3/uiability-intra-device-interaction-0000001478181149-v3

我们期待您的反馈
以上就是本期文档君为大家准备的harmonyos应用程序包基础知识及应用模型开发指南上新内容,希望能够帮助开发者更高效的探索、体验、上手harmonyos。
同时,我们十分重视开发者的意见,欢迎各位开发者在harmonyos应用开发官网积极反馈意见,帮助我们持续提升文档体验。
我们将持续改进文档体验、丰富和完善内容,感谢各位开发者的支持及信赖,您的满意是我们持续提升文档体验的目标和动力。
敬请期待harmonyos开发者公众号更多相关推送,获取最新文档和内容资源!
end
想了解更多harmonyos技术?
后台留言给我们
立刻安排!
欢迎点击|阅读原文|
了解应用模型开发指南
原文标题:应用模型开发指南上新介绍
文章出处:【微信公众号:harmonyos开发者】欢迎添加关注!文章转载请注明出处。

什么是碳膜电阻器 典型的碳膜电阻器规格
物联网设备运维解决方案:自动包装机数据采集远程监控
【节能学院】安科瑞医院能效管理平台在绿色医院中的应用
RedmiBook具有小米互传功能无需网络实现跨平台传输
中光光电滤光片:可用于单反相机、虹膜识别技术
应用模型开发指南上新介绍
触摸电容屏的工作原理
努比亚方糖22.5W快速充电器京东商城正式开卖
3D打印机复合材料是什么
了解中国半导体发展史
三星GalaxyA8s评测 第一眼真的认不出来它是三星手机
半导体市场遇寒冬,“热停机”成为新趋势
了解这几点,飞创直线电机模组如何选型轻松搞定
华硕和腾讯强强联合,共同布局AI机器人市场
思科280亿美元收购Splunk,中国加速自动驾驶竞赛
使开关或线性稳压器产生低于反馈电压的电压
米尔科技MYB-6ULX底板产品概述
嵌入式低功耗WiFi设备保活功耗分析
FMCW微波物位计的原理
槽型光电开关与单片机的接线方法_槽型光电开关使用方法