王姨劝我学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)中注册:
{
"module": {
"abilities": [
{
"skills":[
{
"actions":[
"action.pay",
]
}
]
...
}
]
...
}
...
}
这样子后,我们启动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系列教程之五布局方法&&点击响应!