当前位置: 首页 > news >正文

鸿蒙4.0ArkUI快速入门(一)应用模型

ArkUI篇

  • 应用模型
    • Stage模型
    • FA模型
    • 模型对比

应用模型

应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。

HarmonyOS先后提供了两种应用模型:

FA(Feature Ability)模型:HarmonyOS早期版本开始支持的模型,已经不再主推。

Stage模型:HarmonyOS 3.1 Developer Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。

Stage模型

是我们常用的开发模型 ,使用ArkTS,TS开发。
在这里插入图片描述
有UIAbility组件和ExtensionAbility组件。
UIAbility组件:平常我们只使用UIAbility,项目中继承了UIAbility的EntryAbility跟Android端的继承了Application的类MyApp很类似,用于管理三方组件初始化工作,APP生命周期等。
ExtensionAbility组件:组件是一种面向特定场景的应用组件。
比如说要开发一个卡片,输入法等扩展应用,就可以使用该组件场景了。

FA模型

该模型目前不是主要的开发模型,可以使用JS开发,类Web范式(HML+CSS+JSON)开发。这个模型大概率是为了保留了js开发,这里不做过多介绍。
API 8及其更早版本的应用程序只能使用FA模型进行开发。FA模型将Ability分为FA(Feature Ability)和PA(Particle Ability)两种类型,其中FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility。

模型对比

对比Stage模型FA模型
开发方式提供面向对象的开发方式,UI开发与FA模型一致。提供类Web的API,UI开发与Stage模型一致。
引擎实例每个进程内的多个Ability实例共享一个JS VM引擎实例。每个进程内的每个Ability实例独享一个JS VM引擎实例。
进程内对象共享支持。不支持。
包描述文件使用module.json5描述HAP包和组件信息,可以指定入口文件名。使用config.json描述HAP包和组件信息,组件必须使用固定的文件名。
组件提供Ability(页面展示)、Extension(基于场景的服务扩展)。提供PageAbility(页面展示),ServiceAbility(服务),DataAbility(数据分享)以及FormAbility(卡片)。
除了上述设计上的差异外,对于开发者而言,两种模型的主要区别在于:
  • Ability类型存在差异;
  • 在这里插入图片描述
  • Ability生命周期存在差异;
  • 在这里插入图片描述
http://www.lryc.cn/news/321946.html

相关文章:

  • C++ UML类图
  • Java SE入门及基础(44)
  • 基于Wechaty的微信机器人
  • 【C++ leetcode】双指针问题(续)
  • 51单片机-蜂鸣器
  • 【MySQL】学习和总结使用列子查询查询员工工资信息
  • 突破编程_C++_STL教程( stack 的实战应用)
  • Spring Data访问Elasticsearch----其他Elasticsearch操作支持
  • 代码随想录算法训练营第60天 | 84.柱状图中最大的矩形
  • 【讲解Node.js常用的命令】进阶版
  • 软考81-上午题-【面向对象技术3-设计模式】-行为型设计模式01
  • 【Linux进阶之路】HTTPS = HTTP + S
  • 51-31 CVPR’24 | VastGaussian,3D高斯大型场景重建
  • GPT-4引领AI新纪元,Claude3、Gemini、Sora能否跟上步伐?
  • 图书馆RFID(射频识别)数据模型压缩/解压缩算法实现小工具
  • 【Java Web基础】一些网页设计基础(三)
  • 2 使用GPU理解并行计算
  • Android什么情况下会出现内存泄漏以及怎么解决?
  • kafka集群介绍及搭建
  • 2024/03/19(网络编程·day5)
  • ​LeetCode解法汇总1969. 数组元素的最小非零乘积
  • 学习vue3第九节(新加指令 v-pre/v-once/v-memo/v-cloak )
  • 二开飞机机器人群发,实现自动给多个频道发送消息
  • AI如何支持慈善组织
  • Git如何清除账户凭证
  • 【YUNBEE云贝-PostgreSQL】FDW应用
  • Spring MVC文件上传配置
  • JavaScript高级(十八)---进程和线程,宏任务和微任务
  • How to install mongodb on redhat 7.7
  • 关于继承是怎么样的?那当然是很好理解之