今日看点

【HarmonyOS应用开发】Hello HarmonyOS到Hi HarmonyOS(2)

发表于话题:HarmonyOS 2
发布时间:2021-06-02

上一节我们完成了HelloHarmonyOS项目的初步创建,并运行到TV模拟器上查看了效果。本节我们将对整个项目目录结构做简要说明,以及如何跳转到Hi HarmonyOS页面(HelloHarmonyOS是基于Java的,暂不涉及XML和JS)。

HelloHarmonyOS项目目录结构

在整合目录结构中,作为初学者我们不需要关注entry(应用主模块)以外的目录。

entry是应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。

HarmonyOS应用APP是什么样的?

HarmonyOS的应用软件包以APP Pack(Application Package)形式发布,它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的pack.info组成。我们可以在之前运行的项目entry目录结构下看到build目录,展开后可以看到hap和hapInfo.json。对于APP中多个HAP我们在后面项目进行详细介绍,本节我们仅使用entry来完成案例。

HarmonyOS应用中的Ability是什么?

刚开始学习的时候,对Ability不是特别好理解。翻译过来是能力的意思,什么算能力?为什么要使用Ability这个词?官方解释Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。Ability又分为FA(Feature Ability,有UI界面)和PA(Particle Ability,无UI界面)两种类型。那到底什么是Ability呢?我的理解是一切皆能力,比如页面提供的用户交互,这就是一种能力;在比如后台推送消息任务这也是一种能力,只不过一个是可见的,一个是不可见的。

代码说明

程序是如何运行的呢?

① 先执行继承AbilityPackage类的HelloHarmonyOS 类中onInitialize()方法来加载Context。

② 然后在config.json配置清单中找到入口函数,即MainAbility类,执行onStart()方法。

③ super.setMainRoute(MainAbilitySlice.class.getName());调起UI界面。

/** * 单一方向排列布局 */ private DirectionalLayout myLayout = new DirectionalLayout(this); @Override public void onStart(Intent intent) { /** * Intent是对象之间传递信息的载体。 * 例如,当一个Ability需要启动另一个Ability时, * 或者一个AbilitySlice需要导航到另一个AbilitySlice时, * 可以通过Intent指定启动的目标同时携带相关数据。 */ super.onStart(intent); /** * 布局配置文件 * 此处设置布局宽高为MATCH_PARENT */ LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT); myLayout.setLayoutConfig(config); /** * 提供具有颜色渐变的Element实例,通常用于视图背景。 */ ShapeElement element = new ShapeElement(); element.setRgbColor(new RgbColor(255, 255, 255)); myLayout.setBackground(element); /** * 文本 */ Text text = new Text(this); text.setLayoutConfig(config); text.setText("Hello HarmonyOS"); text.setTextColor(new Color(0xFF000000)); text.setTextSize(50); text.setTextAlignment(TextAlignment.CENTER); myLayout.addComponent(text); /** * 设置界面入口 */ super.setUIContent(myLayout); }

我们修改text.setText("Hello World");为text.setText("Hello HarmonyOS");并运行查看效果。


在这里我们大概的说明了程序的目录结构、运行路线及修改显示文本内容。下一节我们将说说两个Ability跳转。

你是如何理解Ability的?

标签组:[应用开发

本文来源:https://www.kandian5.com/articles/23891.html

相关阅读

宋理宗聪明绝顶为什么选了一个白痴当太子

赵禥是南宋第六位皇帝,即宋度宗,他在位十年,毫无作为,整日吃喝玩乐,于1274年病死,他虽然不是南宋的亡国之君,但却是南宋亡国的罪人!更让人意想不到的是,赵禥是个弱智!根据史书记载,赵禥的父亲是荣王赵...

2025-09-12

特洛伊战争为什么要围城九年

英雄们聚集在奥利斯港湾(Aulis),军队人数有十万人,船数一千一百八十六。出发前大家都在岸边祭坛作献祭,忽然间祭坛下面爬出了一条血红的怪蛇,它弯曲成环状爬上了树,爬到树最高处的一个鸟巢,吃了一只雌鸟...

2025-09-12

鱼玄机是被丈夫骗进道观的吗

鱼玄机出生在长安,当时的大唐国都。生逢盛世,但是家世早衰,鱼玄机出生时,家境已经十分贫寒。她的父亲虽然读过几年书,腹中有些墨水,但是仕途很不顺遂,只能将自己的全部期望寄托在女儿身上。当时鱼玄机还叫做鱼...

2025-09-12

特洛伊战争一共持续几年

特洛伊战争是发生在古希腊的一次战争,发生的地点是现在地中海附近。这场战争的导火索普遍认为是美女海伦,为了抢夺一个名叫海伦的绝世美女,斯巴达王与帕里斯短兵相接。但是有学者推测,这场战事其实是一场盟军对抗...

2025-09-12

荸荠不能生吃吗

姜片虫感染还是挺麻烦的,轻则肠炎腹泻,重则贫血浮肿,儿童可能出现智力低下,甚至死亡。姜片虫在水生植物上都可能存在,不光荸荠,什么茭白菱角,乃至空心菜等,都要反复清洗,保证做熟再吃。尤其荸荠和菱角,千万...

2025-09-12

西晋公主流落街头被卖去当丫鬟下场是什么

这位公主就是西晋时期的临海公主,她的父亲是司马衷,她出生的时候,八王之乱刚刚结束不久,作为公主原本应该享受富贵的生活,可是没过多久西晋就被灭了。皇室成员纷纷外逃,为了保住性命她也逃出了洛阳。在逃跑的途...

2025-09-12

最惨的和亲公主10岁出嫁三个月后离奇身亡

虽然历史上和亲的公主有许多是宫女顶替的,但送去之后多数的结局并不好,而且有许多年幼的公主,尚未涉足人世间的险恶,就不得不去独自面对他乡的险恶,在历史上曾有一位年仅10岁的公主和亲,可因为生得太美,便被...

2025-09-12

古代被抄家的女子是什么下场

《绣春刀》里所说的,入教坊司当妓女只是其中一种结果,但是,电影中所讲的不一定确切,入了教坊司不一定做妓女。教坊司是干什么的呢?主要负责"朝会宴享,冬至,正旦,进实录,册封,诏进士,告祖庙,祭郊祀,进士...

2025-09-12

晋孝武帝真的因为嘲笑张贵人人老色衰被妃子杀了吗

这一天,晋孝武帝和张贵人一起饮酒作乐,晋孝武帝让张贵人多喝几杯,而张贵人已经喝够了,所以就不喝了,晋孝武帝就跟她开玩笑说:“你都年过三十了,人老色衰了,后宫里比你年轻的美女多着呢,信不信我废掉你,把你...

2025-09-12

特洛伊战争的结局究竟是怎样的

特洛伊战争结局以特洛伊城池化为一片废墟而告终。由于特洛伊城池在宙斯的两个儿子修建下非常牢固,所以易守难攻,迈锡尼士兵攻占十年也未能攻下城池,最终伟大的英雄奥德赛献计,伪装成军队已经离开的样子,让迈锡尼...

2025-09-12