0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

HarmonyOS开发者 来源:未知 2023-03-11 13:05 次阅读

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开发者】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    79

    文章

    1974

    浏览量

    30173

原文标题:应用模型开发指南上新介绍

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    超值音棒参考设计套件开发指南

    电子发烧友网站提供《超值音棒参考设计套件开发指南.pdf》资料免费下载
    发表于 12-21 09:16 0次下载
    超值音棒参考设计套件<b class='flag-5'>开发指南</b>

    BQ7690x软件开发指南

    电子发烧友网站提供《BQ7690x软件开发指南.pdf》资料免费下载
    发表于 11-07 10:19 0次下载
    BQ7690x软件<b class='flag-5'>开发指南</b>

    MSP430™ MCU开发指南

    电子发烧友网站提供《MSP430™ MCU开发指南.pdf》资料免费下载
    发表于 11-06 09:57 0次下载
    MSP430™ MCU<b class='flag-5'>开发指南</b>

    MSP430L092开发指南

    电子发烧友网站提供《MSP430L092开发指南.pdf》资料免费下载
    发表于 10-18 10:06 0次下载
    MSP430L092<b class='flag-5'>开发指南</b>

    MSP430 MCU开发指南

    电子发烧友网站提供《MSP430 MCU开发指南.pdf》资料免费下载
    发表于 10-10 17:19 1次下载

    PGA460软件开发指南

    电子发烧友网站提供《PGA460软件开发指南.pdf》资料免费下载
    发表于 10-09 10:30 0次下载
    PGA460软件<b class='flag-5'>开发指南</b>

    TUSS44x0软件开发指南

    电子发烧友网站提供《TUSS44x0软件开发指南.pdf》资料免费下载
    发表于 09-14 10:59 0次下载
    TUSS44x0软件<b class='flag-5'>开发指南</b>

    MSPM0 L 系列 MCU硬件开发指南

    电子发烧友网站提供《MSPM0 L 系列 MCU硬件开发指南.pdf》资料免费下载
    发表于 09-09 10:36 0次下载
    MSPM0 L 系列 MCU硬件<b class='flag-5'>开发指南</b>

    LVGL开发指南介绍

    电子发烧友网站提供《LVGL开发指南介绍.pdf》资料免费下载
    发表于 09-09 10:24 16次下载

    MSPM0 G系列MCU硬件开发指南

    电子发烧友网站提供《MSPM0 G系列MCU硬件开发指南.pdf》资料免费下载
    发表于 09-05 10:58 0次下载
    MSPM0 G系列MCU硬件<b class='flag-5'>开发指南</b>

    BQ769x2软件开发指南

    电子发烧友网站提供《BQ769x2软件开发指南.pdf》资料免费下载
    发表于 08-26 09:12 0次下载
    BQ769x2软件<b class='flag-5'>开发指南</b>

    RA/RX电机应用开发指南

    电子发烧友网站提供《RA/RX电机应用开发指南.pdf》资料免费下载
    发表于 08-15 09:44 0次下载
    RA/RX电机应用<b class='flag-5'>开发指南</b>

    迅为RK3568开发板驱动开发指南-输入子系统

    迅为RK3568开发板驱动开发指南-输入子系统
    的头像 发表于 02-23 15:11 877次阅读
    迅为RK3568<b class='flag-5'>开发</b>板驱动<b class='flag-5'>开发指南</b>-输入子系统

    RA家族QE电机应用开发指南

    电子发烧友网站提供《RA家族QE电机应用开发指南.pdf》资料免费下载
    发表于 01-31 09:57 0次下载
    RA家族QE电机应用<b class='flag-5'>开发指南</b>

    keil arm软件开发指南

    电子发烧友网站提供《keil arm软件开发指南.pdf》资料免费下载
    发表于 01-26 15:51 7次下载