鸿蒙应用开发Ability介绍-了解和Android的activity不同之处

HarmonyOS启动恢复之init和AppSpawn 本文作者:江苏润和软件股份有限公司 **1.总体描述 1.1.总体介绍** 启动恢复负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程。涉及以下模块: a) init启动引导 支持使用LiteOS-A内核的平台,当前包括:Hi3516DV300平台和Hi3518EV300平台。 负责处理从内核加载第一个用户态进程开始,到第一个应用程序启动之间的系统服务进程启动过程。启动恢复子系统除负责加载各系统关键进程之外,还需在启动的同时设置其对应权限,并在子进程启动后对指定进程实行保活(若进程意外退出要 阅读详情

Ability概述

Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。

  • FA支持Page Ability:

    Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。

  • PA支持Service Ability和Data Ability:

    • Service模板:用于提供后台运行任务的能力。
    • Data模板:用于对外部提供统一的数据访问抽象。

在配置文件(config.json)中注册Ability时,可以通过配置Ability元素中的“type”属性来指定Ability模板类型,示例如下。

其中,“type”的取值可以为“page”、“service”或“data”,分别代表Page模板、Service模板、Data模板。为了便于表述,后文中我们将基于Page模板、Service模板、Data模板实现的Ability分别简称为Page、Service、Data。

Page Ability基本概念

Page与AbilitySlice

Page模板(以下简称“Page”)是FA唯一支持的模板,用于提供与用户交互的能力。一个Page可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和。

当一个Page由多个AbilitySlice共同构成时,这些AbilitySlice页面提供的业务能力应具有高度相关性。例如,新闻浏览功能可以通过一个Page来实现,其中包含了两个AbilitySlice:一个AbilitySlice用于展示新闻列表,另一个AbilitySlice用于展示新闻详情。Page和AbilitySlice的关系所示

相比于桌面场景,移动场景下应用之间的交互更为频繁。通常,单个应用专注于某个方面的能力开发,当它需要其他能力辅助时,会调用其他应用提供的能力。例如,外卖应用提供了联系商家的业务功能入口,当用户在使用该功能时,会跳转到通话应用的拨号页面。与此类似,HarmonyOS支持不同Page之间的跳转,并可以指定跳转到目标Page中某个具体的AbilitySlice

AbilitySlice路由配置

虽然一个Page可以包含多个AbilitySlice,但是Page进入前台时界面默认只展示一个AbilitySlice。默认展示的AbilitySlice是通过setMainRoute()方法来指定的。如果需要更改默认展示的AbilitySlice,可以通过addActionRoute()方法为此AbilitySlice配置一条路由规则。此时,当其他Page实例期望导航到此AbilitySlice时,可以在Intent中指定Action,详见不同Page间导航。

setMainRoute()方法与addActionRoute()方法的使用示例如下:

 

public class MyAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        // set the main route
        setMainRoute(MainSlice.class.getName());

        // set the action route
        addActionRoute("action.pay", PaySlice.class.getName());
        addActionRoute("action.scan", ScanSlice.class.getName());
    }
}

Page生命周期的不同状态转换及其对应的回调

onStart()

当系统首次创建Page实例时,触发该回调。对于一个Page实例,该回调在其生命周期过程中仅触发一次,Page在该逻辑后将进入INACTIVE状态。开发者必须重写该方法,并在此配置默认展示的AbilitySlice。

onActive()

Page会在进入INACTIVE状态后来到前台,然后系统调用此回调。Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态。Page将保持在此状态,除非某类事件发生导致Page失去焦点,比如用户点击返回键或导航到其他Page。当此类事件发生时,会触发Page回到INACTIVE状态,系统将调用onInactive()回调。此后,Page可能重新回到ACTIVE状态,系统将再次调用onActive()回调。因此,开发者通常需要成对实现onActive()和onInactive(),并在onActive()中获取在onInactive()中被释放的资源。

onInactive()

当Page失去焦点时,系统将调用此回调,此后Page进入INACTIVE状态。开发者可以在此回调中实现Page失去焦点时应表现的恰当行为。

onBackground()

如果Page不再对用户可见,系统将调用此回调通知开发者用户进行相应的资源释放,此后Page进入BACKGROUND状态。开发者应该在此回调中释放Page不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作。

onForeground()

处于BACKGROUND状态的Page仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此Page),系统将先调用onForeground()回调通知开发者,而后Page的生命周期状态回到INACTIVE状态。开发者应当在此回调中重新申请在onBackground()中释放的资源,最后Page的生命周期状态进一步回到ACTIVE状态,系统将通过onActive()回调通知开发者用户。

onStop()

系统将要销毁Page时,将会触发此回调函数,通知用户进行系统资源的释放。销毁Page的可能原因包括以下几个方面:

  • 用户通过系统管理能力关闭指定Page,例如使用任务管理器关闭Page。

  • 用户行为触发Page的terminateAbility()方法调用,例如使用应用的退出功能。

  • 配置变更导致系统暂时销毁Page并重建。

  • 系统出于资源管理目的,自动触发对处于BACKGROUND状态Page的销毁。

这几天忙,下次在详细介绍鸿蒙的生命周期的应用

鸿蒙搭建环境和第一个demo

鸿蒙开发2-3 页面和组件的生命周期 本系列是windows系统下、采用ArkTS语言、ArkUI框架、deveco studio编译器学习纯鸿蒙软件研发,采用API version 9进行。本小节主要了解鸿蒙开发的页面和组件的生命周期。纯小白,一步步学习,记录一下过程便于查询。 阅读详情

相关推荐

鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期与页面中组件的生命周期(十六)

关于HarmonyOS中的应用生命周期就是代表了一个HarmonyOS应用中所有页面从创建、开启到销毁等过程的全生命周期。页面生命周期,即被@Entry装饰的组件生命周期。组件生命周,即⼀般用@Component装饰的自定义组件的生命周期。

Viewinfinitely的博客 6397

【鸿蒙开发】生命周期

鸿蒙开发arkts,UIAbility组件生命周期,页面和自定义组件生命周期

d312697510的博客 1万+

关于鸿蒙Ability的介绍

与 Android Activity相比,Activity 是 Android 应用的四大组件之一, 它提供一个窗口用于应用在其中绘制界面,用户可以在界面上完成交互动作。HarmonyOS Ability 是应用所具备能力的抽象。Ability 的中文含义即能力,代表了 HarmonyOS 工程中最重要最核心的功能,也是应用程序的原子化基础组件。使用 Ability 时必须在配置文件 config.json 中注册该 Ability ,设置相应的属性,该文件存储在每个应用程序的 Java 代码的根目录中。

m0_69690330的博客 1955

鸿蒙 - Page Ability与AbilitySlice 生命周期

概述 Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。 FA支持Page Ability: Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个

xgw的专栏 2558

鸿蒙ArkUI-X跨平台开发:【bility开发说明(Android平台)】

本文介绍将ArkUI框架扩展到Android平台所需要的必要的类及其使用说明,开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到Android平台,降低跨平台应用开发成本。

m0_62167422的博客 1600

S/4中的16种特殊库存类型

S/4中的16种特殊库存类型

yanzibing99的博客 1万+

HarmonyOS鸿蒙应用开发 (二、应用程序包结构理解及Ability的跳转,与Android的对比)

在进行应用开发前,对程序的目录及包结构的理解是有必要的。如果之前有过android开发经验的,会发现OpenHarmony的应用开发也很简单,有很多概念是相似的。下面对比android分析总结下鸿蒙的应用程序包结构,以及鸿蒙对比android的诸多亮点。从这些亮点上看,可以毫不客气的说,鸿蒙系统是对android系统的一种超越。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 5588

浅谈向量检索

文章目录浅谈向量检索背景什么是向量什么是向量检索距离度量检索方法ANN的基本思路举个容易理解栗子举个正常的例子具体算法树方法KD-TreeAnnoyHash方法LSH 算法矢量量化方法乘积量化码本的建立码字搜索算法倒排乘积量化临近图方法HNSW 算法朴素想法Delaunay算法NSW 主要思想NSW构图NSW查找参考 浅谈向量检索 背景 索引一直被认为是检索引擎最重要的组成部分,之所以数据库能够快速的查询出来结果。系统设计中很多常见的多种数据结构都是为了快速命中索引设计的, 比如 红黑树、跳跃表、倒排索引、

qq_42828391的博客 6552

鸿蒙应用开发Ability和Android的activity不同之处

Ability概述 Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。 FA支持Page Ability: Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,

m0_58350991的博客 824

NVIDIA Jetson AGX Xavier设置风扇转速、工作模式及性能监控

Xavier的风扇在开机之后是默认关闭的,每次重启都需要手动打开风扇,后续可能考虑修改bashrc文件进行自动开启 这个是显示当前风扇的转速,默认应该是0,表示关闭,最大是250 cat /sys/devices/pwm-fan/target_pwm 可以通过修改该文件的值来修改风扇转速 vim /sys/devices/pwm-fan/target_pwm 我一般使用的是100这个值 作者:ryan_ren 链接:https://www.jianshu.com/p/d3c2041f7f7d 来源:简书 著

weixin_43877080的博客 1万+

狗都能看懂的Proximal Policy Optimization(PPO)PPO算法详解

李宏毅老师的PPO算法讲解笔记

个人学习笔记 2万+

Day8 鸿蒙,一个Ability全家桶究竟包括了什么(一)

Ability是鸿蒙应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。 FA支持Page Ability: Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个Abi

程序员小小叶的博客 1075

栅格数据做相关性分析前的预处理(批量定义投影、栅格投影、重采样)

最近在做两个栅格数据的相关性分析,这个最主要的是两个栅格数的行列号是一致的(也就是说坐标系、分辨率一致),那么标准的栅格数据的分辨率是以米的形式存在的,但是有一些栅格数据是以度为单位存在的,所以在做分析前,一定要先把其转换为米,否则在重采样的时候就会出错。(相关文章——栅格数据以度为单位变为以米为单位的简单做法)当然,在变其分辨率的单位前,一定要将其坐标系转换为一致。所以就有以下的步骤(如何将两个栅格数据的坐标系、分辨率的单位和分辨率一致) 1.首先,要看两个栅格数据的坐标系是否一致,如果不一致,要先统一到

qq_41828818的博客 8350

安卓&鸿蒙应用开发架构变迁

安卓&鸿蒙应用开发架构变迁

sd2131512的专栏 501

基于ESP32Cam摄像头+YOLOv3完成图像识别_355

本项目正是在此背景下提出,设计一个基于ESP32Cam摄像头的图像识别系统,通过WIFI热点通信实现图像数据的传输,并利用上位机(Windows与Android平台的QT APP)实时显示原始图像与识别结果,实现目标检测、识别与标注功能。

595

《PCI Express体系结构导读1》-- PCI简介

请先阅读完一遍此书再来看文章哦,这样效率更高~

HoneyIC的博客 152

www.harmonyos.com,极速上手HarmonyOS鸿蒙应用开发

原标题:极速上手HarmonyOS鸿蒙应用开发作为一枚程序员,不得不亲自动手体验国产操作系统HarmonyOS(中文名鸿蒙),话不多说,直接以最快的速度来一睹庐山真面目吧[可爱]首先登录鸿蒙官网下载DevEco Studio (https://www.harmonyos.com/cn/develop),它是类似于Android Studio一样的集成开发工具,将创建工程、编码、编译、打包、签名、发...

weixin_39630855的博客 660

【CicadaPlayer】av_rescale_q 学习:转换PTS和Duration

参考 av_rescale_q()理解 大神时间基准的总结: AVPacket下的pts和dts以AVStream->time_base为单位(数值比较大),时间间隔就是AVStream->time_base。 大神:多种转换的总结 av_rescale_q用于计算Packet的PTS 如: if (pkt->pts != AV_NOPTS_VALUE) { pkt->pts = av_rescale_q(pkt->pts, m

突围 842

鸿蒙开发转型:从安卓思维到ArkTS声明式UI的实战指南

声明式编程是现代UI开发的核心范式,通过状态驱动视图更新实现高效开发。鸿蒙系统的ArkTS语言基于TypeScript强化了装饰器等特性,为分布式场景提供类型安全的通信保障。在应用架构层面,Ability替代传统安卓组件,配合Data Ability实现跨进程数据共享。开发者需掌握@State、@Link等关键装饰器,理解状态管理机制。分布式软总线技术原生支持多设备协同,大幅简化物联网应用开发流程。本文通过天气应用等实例,详解如何从安卓开发思维转型鸿蒙开发,包括DevEco Studio配置技巧、性能优化要

a359798678的博客 440

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

#私藏项目实操分享# 鸿蒙学习笔记:Ability 组件

关于 Ability与 Android Activity相比,Activity 是 Android 应用的四大组件之一, 它提供一个窗口用于应用在其中绘制界面,用户可以在界面上完成交互动作。HarmonyOS Ability 是应用所具备能力的抽象。Ability 的中文含义即能力,代表了 HarmonyOS 工程中最重要...

宇宙之一粟的技术漂泊之旅 900

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ability鸿蒙,Day8 鸿蒙,一个Ability全家桶究竟包括了什么(一)

Ability是鸿蒙应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。FA支持Page Ability: Page...

weixin_33199783的博客 249

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

从Java/Android转战HarmonyOS:手把手教你用DevEco Studio快速上手第一个鸿蒙应用

本文为Java/Android开发者提供HarmonyOS开发快速入门指南,详细介绍如何使用DevEco Studio搭建开发环境、创建第一个鸿蒙应用,并对比Android与HarmonyOS的项目结构和核心概念差异,帮助开发者高效迁移技能。

weixin_30072453的博客 262

王姨劝我学HarmonyOS鸿蒙2.0系列教程之二应用知识&&梳理逻辑!

原创PDF |《Android 深入系统完全讲解》免费开源,可能价值百万!王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器!写完了第一篇,跑去找王...

程序员入门进阶 827

02 鸿蒙 工作目录介绍

开发过As 原生Android的就很容易理解这些是什么 主项目工程目录。可以有很多模块 主模块。像as 中的app模块 是我们开发使用最频繁的一个目录。后面详细讲解里面 因为有些复杂 配置gradle 版本 这个的变化 会引起gradle 语法的变化。开发阶段我们可能还不需要修改他。等以后可能会要修改 根据多年来的android开发经验来说。上面的7.3-bin 会和这一行有版本依赖关系。就是变化a的时候 大部分都是要变化b的 假设如此3.0.5.2- 3....

丿灬安之若死 2792

Android攻城狮学鸿蒙-配置

Data 的提供方和使用方都通过 URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。URI 的组成图如下:

Jermmy1207的博客 1193
上一篇: 面对程序员严重的内卷,应该先提升学历,还是先提升技术?
下一篇: 作为一个开发者,如何更好的学习鸿蒙?
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值