【HarmonyOS系列课程体验测评2】应用程序框架基础
本文分享了鸿蒙技术开发者的学习体验,重点介绍了鸿蒙OS应用程序框架和UIAbility组件的基础知识。应用程序框架作为连接开发者和用户的桥梁,简化开发流程并提高代码复用性。Stage模型支持跨端迁移和多端协同,工程目录结构清晰便于管理。UIAbility组件是包含UI的应用组件,具有三种启动模式(singleton/multiton/specified)适应不同场景,其生命周期管理与WindowS
文章目录
作为一名鸿蒙技术开发者,最近学习了鸿蒙 OS 应用程序框架相关的课程,收获满满,来分享下我的学习体验。
应用程序框架基础
1. 应用程序框架概述
应用程序框架是连接开发者和用户的桥梁。从用户角度,涉及应用内、应用间交互以及跨设备流转;从开发者角度,能获取应用进程管理、生命周期调度等能力,还有安装应用、任务管理、系统服务、应用组件这些环节围绕着框架。这部分让我一下子明白,应用程序框架在鸿蒙生态里是承上启下的关键,它把开发者的技术实现和用户的使用体验紧密联系起来了。我当时就觉得,这框架就像个 “大管家”,协调着各方,让应用能顺畅运行,还挺厉害的。
2. 应用程序框架与应用模型
应用程序框架是编程框架,能简化开发、提高代码复用和可维护性;应用模型是应用的抽象描述,涵盖应用组件、进程线程模型等,分 FA 和 Stage 模型,现在长期用 Stage 模型,而且应用程序框架是应用模型的一种实现方式。这部分让我理清了两者的概念和关系,就像先有设计蓝图(应用模型),再用工具(应用程序框架)去把蓝图变成实际的房子(应用),对后续开发中怎么利用框架去实现符合模型的应用,心里有了更清晰的方向。
3. Stage 模型设计思想
它为复杂应用设计,支持组件级跨端迁移和多端协同,还有不同组件实例共享、面向对象开发,以及 UIAblity
生命周期定义、组件和窗口管理解耦来支持多设备多窗口,另外通过严格后台管控、场景化服务机制、严格进程模型平衡应用能力和系统管控成本等。学这部分的时候,我感觉 Stage 模型考虑得特别周全,从复杂应用开发到跨端协同,再到系统资源平衡,方方面面都照顾到了,这让我对用 Stage 模型开发复杂且跨设备的鸿蒙应用充满期待,觉得能做出更灵活、更强大的应用。
4. 工程目录结构:文件类型
课程展示了应用项目里 AppScope 和 entry 等目录下的文件分类,像资源文件、配置文件、ArkTS 文件各自的存放位置。这部分对实际开发太有用了,就像知道了仓库里不同货物的摆放位置,以后找文件、管理项目结构就很清晰,不用担心文件乱糟糟的,能大大提高开发效率。
更多详情参考:Stage模型应用程序包结构 https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717497122909477
整体学下来,这些课程把鸿蒙应用程序框架从宏观到微观都讲解得很清楚。我感觉自己对鸿蒙应用开发的整体架构有了更深入的理解,之前一些模糊的概念也变得清晰了。现在再去看鸿蒙应用开发,思路更开阔了,也更有信心去开发出符合鸿蒙生态的优质应用了。而且课程的讲解方式也很容易理解,把复杂的技术概念用比较直观的方式呈现出来,学习过程很顺畅,真的是受益匪浅。
UIAbility组件基础
1. 概述
UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。例如,图库类应用可以在UIAbility组件中展示图片瀑布流。
2.UIAbility的设计理念:
- 支持应用组件级的跨端迁移和多端协同。
- 支持多设备和多窗口形态。
UIAbility划分原则与建议:
UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件。例如,在支付应用中,可以将入口功能和收付款功能分别配置为独立的UIAbility。
每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。
对于开发者而言,可以根据具体场景选择单个还是多个UIAbility,划分建议如下:
- 如果开发者希望在任务视图中看到一个任务,建议使用“一个UIAbility+多个页面”的方式,可以避免不必要的资源加载。
- 如果开发者希望在任务视图中看到多个任务,或者需要同时开启多个窗口,建议使用多个UIAbility实现不同的功能。
例如,即时通讯类应用中的消息列表与音视频通话采用不同的UIAbility进行开发,既可以方便地切换任务窗口,又可以实现应用的两个任务窗口在一个屏幕上分屏显示。
3. UIAbility组件生命周期
当用户在执行应用启动、应用前后台切换、应用退出等操作时,系统会触发相关应用组件的生命周期回调。其中,UIAbility组件的核心生命周期回调包括onCreate、onForeground、onBackground、onDestroy。作为一种包含UI的应用组件,UIAbility的生命周期不可避免地与WindowStage的生命周期存在关联关系。
更多详情请参考:UIAbility组件生命周期https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717497122909477
UIAbility组件启动模式
UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。针对不同的业务场景,系统提供了三种启动模式:
-
singleton(单实例模式):每次调用startAbility()方法时,如果应用进程中该类型的UIAbility实例已经存在,则复用系统中的UIAbility实例。系统中只存在唯一一个该UIAbility实例,即在最近任务列表中只存在一个该类型的UIAbility实例。
-
multiton(多实例模式):multiton启动模式为多实例模式,每次调用startAbility()方法时,都会在应用进程中创建一个新的该类型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例。这种情况下可以将UIAbility配置为multiton(多实例模式)。
-
specified(指定实例模式):specified启动模式为指定实例模式,针对一些特殊场景使用(例如文档应用中每次新建文档希望都能新建一个文档实例,重复打开一个已保存的文档希望打开的都是同一个文档实例)。
更多详情请参考:UIAbility组件启动模式
https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717497122909477
学完 UIAbility 组件相关的课程,感觉收获还挺多的。最开始的 “UIAbility 组件概述”,就像给我开门一样,让我一下子明白这个组件在鸿蒙应用里是个啥角色。然后学 “生命周期” 的时候,了解到组件从生到死的整个过程,这对我管理应用资源太有用了,能避免资源浪费,让应用跑得更流畅。“启动模式” 这块也很有意思,不同的模式对应不同的使用场景,得根据实际情况选,就跟选不同的工具干不同的活似的。“基本用法” 就是手把手教我怎么用这个组件,是实际开发的基础,学了之后我自己试着写点小功能,也能慢慢搞出来了。“和 UI 的数据同步” 让我知道怎么让界面和组件数据保持一致,这样用户用的时候就不会觉得别扭。最后 “组件间交互”,了解到同一设备里不同组件咋配合,这能让应用的各个功能衔接得更自然。整体学下来,这些内容从基础到实际应用都覆盖到了,把 UIAbility 组件的知识讲得挺透的,对我做鸿蒙应用开发帮助很大。
如果你也和我一样,在学习中经历过 “认知破碎 — 重建 — 兴奋” 的循环,或是对鸿蒙开发有无数疑问,
欢迎加入 鸿蒙知识共建交流群 :https://work.weixin.qq.com/gm/afdd8c7246e72c0e94abdbd21bc9c5c1
在这里,我们可以拆解技术难点,分享实践案例,甚至一起畅想全场景生态的下一个突破点 —— 毕竟,在鸿蒙的浪潮里,独行太孤独,并肩才能走得更远。
更多推荐
所有评论(0)