王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法!

Posted 程序员入门进阶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法!相关的知识,希望对你有一定的参考价值。

原创PDF |《Android 深入系统完全讲解》免费开源,可能价值百万!

王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器!

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

昨晚写到凌晨了,也就没去找王姨,毕竟王姨一到每月15号,王姨便开车围城转一圈,浐灞,南湖,高新区,回来会给我说,收租是个体力活。

我心想,这体力活我想要~~~毕竟,我呀~~

趁着这几天王姨收租完,肯定会找她的闺蜜们嘚瑟,我还是抓紧继续来写文章了。

今天我们开始来讲下HarmonyOS应用开发中的一个关键概念,Ability,同时通过代码分析,来看下它的用法。

Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,FA支持 Page Ability,提供与用户交互的能力,点击,按键事件的接受处理。

一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。

简单可以这么理解下:

整个项目是这么个结构:

由多个Module组成,然后有一个是定义成这个"moduleType": "entry",然后每个Module里面是由多个abilities组成。每个Ability里面可以有多个AbilitySlice。

这个图画了我们当前需要的界面AbilitySlice,实际中每个Module里面可以有

PA(Particle Ability),无界面的服务和内容提供者。我们在不断学习的过程,会给大家讲解。

从图中我们就能看到,我们的界面AbilitySlice,依据业务关系划分成一组,由AbilitySlice来管理。然后我们的AbilitySlice 相互之间的调用,使用present方法来操作,而Ability调用另一个Ability的时候,使用startAbility来完成。

现在我们来看默认生成的代码,里面的Ability,这里是MainAbility,代码为:

这里使用 super.setMainRoute(MainAbilitySlice.class.getName()); 来指定当前这个Ability的主界面(AbilitySlice),用来作为第一个界面。

而我们的MainAbilitySlice里面代码是:

使用 super.setUIContent(ResourceTable.Layout_ability_main);来调用布局文件。

我们在启动一个Ability的时候,因为它里面包含了多个AbilitySlice,如果我们不带参数调用,默认启动的是哪个AbilitySlice,是由setMainRoute进行设定。

如果你想要启动具体的AbilitySlice,那么你需要在自己的Ability里面,使用

addActionRoute进行添加。比如 addActionRoute("action.pay", PaySlice.class.getName());

然后需要在应用配置文件(config.json)中注册:

  1. {

  2. "module": {

  3.        "abilities": [

  4.            {

  5.                "skills":[

  6.                    {

  7.                        "actions":[

  8.                            "action.pay",

  9.                        ]

  10.                    }

  11.                ]

  12.                ...

  13.            }

  14.        ]

  15.        ...

  16.    }

  17.    ...

  18. }

这样子后,我们启动startAbility的时候,可以传具体的action,来达到启动具体的AbilitySlice 。

下来让我们看下MainAbilitySlice ,具体的界面super.setUIContent(ResourceTable.Layout_ability_main);使用这个进行加载,而对应的资源目录,跟安卓是类似的:

默认都是放在base这个目录下,我们直接先看layout这个目录,基本跟安卓中使用三方包一样:

大家看到这里是不是觉得很简单了,那么我们下一节继续来讲,给大家下载官方的实例以及讲解。

今天在最后,我这边加一段代码,让按下返回键的时候,可以弹出一个提示语:在MainAbilitySlice 里面加入:

然后我又不干好事,进行了断点设定,然后运行起来,看下调用栈:

这个方式可以加速我们的学习速度,通过查看堆栈,分析实现的机制,从而让自己的框架完整,准确,指导自己的实战。

好了,这一节就讲到这里,我们下期再见~

--end--

今天分享一些整理的鸿蒙学习资料,加我微信 code_gg_boy  ,免费领取。加微信,可以咨询辅导,以及斤鸿蒙交流学习群。

以上是关于王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法!的主要内容,如果未能解决你的问题,请参考以下文章

王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建&&下载实例!

王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建&&下载实例!

王姨劝我学HarmonyOS鸿蒙2.0系列教程之五布局方法&&点击响应!

王姨劝我学HarmonyOS鸿蒙2.0系列教程之五布局方法&&点击响应!

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

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