HarmonyOS app 开发应用框架的架构和组成(Java)_基于harmonyos的app架构(2)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

文章目录

HarmonyOS app 开发应用框架的架构和组成(Java)


一、应用框架组成

在这里插入图片描述

​ 应用框架,简单来说可以理解为面对开发者的一个应用接口。我们可以简单来看,左边就是部署态的示意图们可以看出部署态有UI描述,业务逻辑代码,共享库,配置文件来组成。一般来说,我们的应用会有我们的组件,布局还有实现交互作用的业务逻辑代码,还有我们业务逻辑实现需要的第三方库和SDK以及我妈们的配置文件。当然我们也会有对应的一个运行态,资源管理等来将UI页面展现在用户的面前,当然在运行的时候也会进行一些包管理,任务管理等来辅助我们的程序执行。借助API和Kits等来实现我们软件的一些基本业务功能。

二、HarmonyOS应用部署运行

在这里插入图片描述

我们在HarmonyOS将代码打包成一个app,这个app是由很多hap组成的,app打包完成后就会上传到云端,在云端会对我们的app进行检验和拆包,以实现我们app的基本功能和展现,根据不同的设备以及我们的hap功能等,我们就会部署到应用市场,然后在我们的端测侧,我们下载app就会将我们的app打包下载到我们的设备,我们的app运行主要包括了我们的UI和我们Ability。

三、Ability

在这里插入图片描述

Ability 是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个 Ability),HarmonyOS 支持应用以 Ability 为单位进行部署。Ability 可以分为 FA(Feature Ability)和 PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。你可以把我们的Ability理解为我们在鸿蒙开发里的一个基本单元,一个 Page 可以包含多个 AbilitySlice,但是 Page 进入前台时界面默认只展示一个AbilitySlice。默认展示的 AbilitySlice 是通过 setMainRoute() 方法来指定的。如果需要更改默认展示的 AbilitySlice,可以通过 addActionRoute() 方法为此 AbilitySlice 配置一条路由规则。此时,当其他 Page 实例期望导航到此 AbilitySlice 时,可以在 Intent 中指定 Action。 addActionRoute() 方法中使用的动作命名,需要在应用配置文件( config.json )中注册。

​ 现在我们知道这个Page Ability是主要负责页面交互的,那么就可以理解为Android 的Activity。那么都知道Activity有生命周期,同样的Page Ability也是的。下面来看看它的生命周期。

生命周期

在这里插入图片描述

声明周期分别是 onStart() 、 onActive() 、 onInactive() 、 onBackground() 、 onForeground() 、 onStop()。

  • onStart() 当系统首次创建 Page Ability 实例时,触发该回调。对于一个 Page Ability 实例,该回调在其生命周期过程中仅触发一次, Page Ability 在该逻辑后将进入 INACTIVE 状态。开发者必须重写该方法,并在此配置默认展示的 AbilitySlice。
  • onActive()   Page Ability 会在进入 INACTIVE 状态后来到前台,然后系统调用此回调。 Page Ability 在此之后进入ACTIVE 状态,该状态是应用与用户交互的状态。 Page Ability 将保持在此状态,除非某类事件发生导致 Page Ability 失去焦点,比如用户点击返回键或导航到其他 Page Ability 。当此类事件发生时,会触发 Page Ability 回到 INACTIVE 状态,系统将调用 onInactive() 回调。此后, Page Ability 可能重新回到ACTIVE 状态,系统将再次调用 onActive() 回调。因此,开发者通常需要成对实现 onActive() 和 onInactive() ,并在 onActive() 中获取在 onInactive() 中被释放的资源。
  • onInactive() 当 Page Ability 失去焦点时,系统将调用此回调,此后 Page 进入 INACTIVE 状态。开发者可以在此回调中实现 Page 失去焦点时应表现的恰当行为。
  • onBackground() 如果 Page Ability 不再对用户可见,系统将调用此回调通知开发者用户进行相应的资源释放,此后 Page Ability 进入 BACKGROUND 状态。开发者应该在此回调中释放 Page Ability 不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作。
  • onForeground() 处于 BACKGROUND 状态的 Page Ability 仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此 Page Ability ),系统将先调用 onForeground()回调通知开发者,而后 Page 的生命周期状态回到 INACTIVE 状态。开发者应当在此回调中重新申请在 onBackground()中释放的资源,最后 Page 的生命周期状态进一步回到 ACTIVE 状态,系统将通过 onActive()回调通知开发者用户。
  • onStop() 系统将要销毁 Page Ability 时,将会触发此回调函数,通知用户进行系统资源的释放。

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化的资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值