鸿蒙Ability对比Android的Fragment

码农较瘦
• 阅读 17

在鸿蒙(HarmonyOS)中,没有直接与 Android 的 Fragment 对应的组件,但可以通过 Ability动态组件加载机制 实现类似的功能。

1. 功能与用途

  • Android Fragment

    • 是一个可以嵌入到 Activity 中的模块化组件,用于构建复杂的用户界面。
    • 支持动态加载、替换和隐藏,适用于多窗格界面或动态界面切换。
  • 鸿蒙 Ability

    • 是鸿蒙应用的基本功能单元,用于定义应用的交互逻辑。
    • 通过 Ability 的动态加载机制,可以实现类似 Fragment 的功能。

2. 生命周期

  • Android Fragment

    • 生命周期方法包括 onCreate()onStart()onResume()onPause()onStop()onDestroy()
    • 生命周期与宿主 Activity 的生命周期相互关联。
  • 鸿蒙 Ability

    • 生命周期方法包括 onStart()onActive()onInactive()onStop()
    • 生命周期与宿主 Ability 的生命周期相互关联。

3. 开发方式

  • Android Fragment

    • 使用 Java 或 Kotlin 编程语言,通过 XML 定义布局。
    • 使用 FragmentManagerFragmentTransaction 来管理 Fragment 的生命周期和事务操作。
  • 鸿蒙 Ability

    • 支持多种编程语言,包括 ArkTS、Java 等。
    • 使用 ArkUI 框架的声明式 UI 开发方式,通过链式写法和组件化设计构建界面。
    • 动态加载组件时,可以通过 NodeController 管理组件的创建、显示和更新。

4. 渲染机制

  • Android Fragment

    • 基于 Android 的 View 系统,使用 Android 的渲染引擎进行界面绘制。
  • 鸿蒙 Ability

    • 使用鸿蒙自研的图形栈进行渲染,支持 Vulkan 等现代图形 API。
    • 动态组件加载机制允许在运行时根据需要加载和渲染组件。

5. 性能与资源占用

  • Android Fragment

    • 在多 Fragment 场景下,可能会导致内存占用较高,尤其是在复杂的界面布局中。
  • 鸿蒙 Ability

    • 鸿蒙系统在资源占用上表现更优,例如鸿蒙版应用通常体积更小,占用存储空间更少。
    • 动态加载机制减少了不必要的资源消耗。

6. 权限管理

  • Android Fragment

    • 权限管理依赖于宿主 Activity,Fragment 本身不直接管理权限。
  • 鸿蒙 Ability

    • 鸿蒙系统在权限管理上更加严格,Ability 只会申请必要的权限,减少了不必要的权限请求。

7. 跨设备适配

  • Android Fragment

    • 需要开发者手动适配不同设备的屏幕尺寸和方向。
  • 鸿蒙 Ability

    • 鸿蒙系统通过分布式设计理念,支持多设备间的无缝流转和适配。

8. 动态加载组件

  • Android Fragment

    • 使用 FragmentTransaction 动态添加、移除或替换 Fragment。
  • 鸿蒙 Ability

    • 使用 NodeController 动态创建和卸载组件。

    • 示例代码:

      class TextNodeController extends NodeController {
        private textNode: BuilderNode<[Params]> | null = null;
        private message: string = '';
        constructor(message: string) {
          super();
          this.message = message;
        }
        makeNode(context: UIContext): FrameNode | null {
          return null;
        }
      }

9. 对比

特性 Android Fragment 鸿蒙 Ability(动态加载机制)
功能与用途 模块化组件,嵌入 Activity 动态加载组件,用于构建复杂界面
生命周期 onCreate()onStart() onStart()onActive()
开发方式 Java/Kotlin,XML 布局 ArkTS、Java,声明式 UI
渲染机制 Android 渲染引擎 鸿蒙自研图形栈,支持 Vulkan
性能与资源占用 内存占用较高,渲染效率一般 资源占用低,渲染效率高
权限管理 权限依赖宿主 Activity 权限管理严格,只申请必要权限
跨设备适配 需手动适配不同设备 支持多设备无缝流转和适配

综上所述,鸿蒙的 Ability 和动态加载机制虽然没有直接对应 Fragment 的组件,但通过灵活的模块化设计和高效的动态加载机制,实现了类似的功能,并在性能和资源占用方面表现出色。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
HarmonyOS 鸿蒙入门教程之01 基础环境和开发工具 (教程含源码)
HarmonyOS鸿蒙入门教程之01基础环境和开发工具鸿蒙系统是什么HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的
使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理
背景在上一篇文章中,我们已经了解到华为即将发布的鸿蒙操作系统,以及各个互联网厂商开展鸿蒙应用开发的消息。其中,Taro作为一个重要的前端开发框架,也积极适配鸿蒙的新一代语言框架——ArkTS。本文将深入探讨Taro适配鸿蒙ArkTS框架的工作原理,接下来我
小天 小天
1年前
鸿蒙系统开发
有用的网站鸿蒙官网:鸿蒙系统开发者:华为开发者:在线体验:Gitee:JSAPI:开发环境搭建(DevEcoStudio)DevEcoStudio是面向全场景多设备,提供一站式的分布式应用开发平台下载地址:安装确保有网络环境安装模拟器安装菜单ToolsDe
京东云开发者 京东云开发者
9个月前
动态化-鸿蒙跨端方案介绍
一、背景👉华为在2023.9.25官方发布会上宣布,新的鸿蒙系统将不再兼容安卓应用,这意味着,包括京东金融APP在内的所有安卓应用,在新的鸿蒙系统上将无法运行,需要重新开发专门适用于新鸿蒙系统的专版APP。二、原生适配方案原生适配方案就是将京东金融APP
京东云开发者 京东云开发者
8个月前
鸿蒙跨端实践-ArkTS和CAPI的混合开发实现
一、背景在文章中,讲述了动态化适配鸿蒙的方案实现,当在鸿蒙系统进行UI渲染的时候,我们使用了系统的组件进行递归渲染。在iOS和Android也是借助各自系统组件进行的渲染,但是在鸿蒙系统会存在以下4个严重问题:1.UI层级过多以金融APP理财频道页中的一个
京东云开发者 京东云开发者
6个月前
Taro 鸿蒙技术内幕系列(二):如何让 W3C 标准的 CSS跑在鸿蒙上
作者:京东零售马银涛基于Taro打造的京东鸿蒙APP已跟随鸿蒙Next系统公测,本系列文章将深入解析Taro如何实现使用React开发高性能鸿蒙应用的技术内幕背景HarmonyOS采用自研的ArkUI框架作为原生UI开发方案,这套方案有完善的布局系统和样式
少湖说 少湖说
6个月前
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
鸿蒙Flutter实战:现有Flutter项目支持鸿蒙背景原来使用Flutter开发的项目,需要适配鸿蒙。环境搭建见文章[鸿蒙Flutter适配指南],搭建开发环境,使用fvm管理多版本SDK。模块化原有项目保持模块化,拆分为apps/common/com
少湖说 少湖说
6个月前
鸿蒙Flutter实战:10-常见问题集合
鸿蒙Flutter实战:10常见问题集合1.学习路径应该是怎样的,需要掌握哪些技术才具备鸿蒙Flutter开发能力1.1学习和掌握Flutter开发技术,这块需要在Flutter社区学历1.2学习鸿蒙基础概念和知识,推荐学习,,,2.MatePad应用适配
少湖说 少湖说
5个月前
鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II
引言在之前的文章鸿蒙Flutter实战:09现有Flutter项目支持鸿蒙中,介绍了如何改造项目,适配鸿蒙平台。文中讲述了整体的理念和思路,本文更进一步,结合可实操的项目代码,详细说明如何实施。通过模块化、鸿蒙壳工程,结合FVM管理多版本FlutterSD
京东云开发者 京东云开发者
4星期前
Taro on Harmony :助力业务高效开发纯血鸿蒙应用
作者;京东零售李伟涛背景纯血鸿蒙逐渐成为全球第三大操作系统,业界也掀起了适配鸿蒙原生的浪潮,用户迁移趋势明显,京东作为国民应用,为鸿蒙用户提供完整的购物体验至关重要。去年9月,京东APP纯血鸿蒙在鸿蒙应用商城正式上线,APP中核心购物链路,如首页、搜索、商
码农较瘦
码农较瘦
Lv1
男 · CTO
危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。
文章
1
粉丝
0
获赞
0
热门文章

暂无数据