今日看点

【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

相关阅读

《吕氏春秋·慎行论》疑似赏析

【原文】使人大迷惑者,必物之相似者也。玉人之所患,患石之似玉者;相剑者之所患,患剑之似吴干②者;贤主之所患,患人之博闻辩言而似通者。亡国之主似智,亡国之臣似忠。相似之物,此愚者之所大惑,而圣人之所加虑...

2025-04-29

庄子《山木》寓言七:孔子穷于陈蔡之间

孔子穷于陈蔡之间原文:孔子穷于陈蔡之间,七日不火食,左据槁木,右击槁枝,而歌猋氏之风,有其具而无其数,有其声而无宫角,木声与人声,犁然有当于人之心。颜回端拱还目而窥之。仲尼恐其广己而造大也,爱己而造哀...

2025-04-29

庄子《山木》寓言五:孔子问子桑雽

孔子问子桑雽原文:孔子问子桑雽曰:“吾再逐于鲁,伐树于宋,削迹于卫,穷于商周,围于陈蔡之间。吾犯此数患,亲交益疏,徒友益散,何与?”子桑雽曰:“子独不闻假人之亡与?林回弃千金之璧,负赤子而趋。或曰:‘...

2025-04-29

庄子《山木》寓言六:庄子衣大布而补之

庄子衣大布而补之原文:庄子衣大布而补之,正緳系履而过魏王。魏王曰:“何先生之惫邪?”庄子曰:“贫也,非惫也。士有道德不能行,惫也;衣弊履穿,贫也,非惫也;此所谓非遭时也。王独不见夫腾猿乎?其得枏梓豫章...

2025-04-29

《吕氏春秋·慎行论》无义赏析

【原文】先王之于论也极之矣①。故义者,百事之始也,万利之本也,中智之所不及也。不及则不知,不知则趋利。趋利固不可必也②。公孙鞅、郑平、续经、公孙竭是已。以义动则无旷③事矣,人臣与人臣谋为奸,犹或与之④...

2025-04-29

庄子《山木》寓言四:孔子围于陈蔡之间

孔子围于陈蔡之间原文:孔子围于陈蔡之间,七日不火食。大公任往吊之曰:“子几死乎?”曰:“然”。“子恶死乎?”曰:“然。”任曰:“子尝言不死之道。东海有鸟焉,其名曰意怠。其为鸟也,翂翂翐翐,而似无能;引...

2025-04-29

《吕氏春秋·慎行论》慎行赏析

【原文】行不可不孰②。不孰,如赴深谿,虽悔无及。君子计行虑义,小人计行其利,乃不利。有知不利之利者,则可与言理矣。【注释】①慎行:行为要谨慎。本篇阐述的是漆雕学派的学说。②孰:通“熟”,精审,慎重考虑...

2025-04-29

《六韬·文韬·盈虚》赏析

【原文】文王问太公曰:“天下熙熙,一盈一虚,一治一乱,所以然者,何也?其君贤不肖不等乎?其天时变化自然乎?”太公曰:“君不肖,则国危而民乱,君贤圣则国安而民治,祸福在君不在天时。”文王曰:“古之贤君可...

2025-04-29

《六韬·文韬·明传》赏析

【原文】文王寝疾,召太公望,太子发在侧,曰:“呜呼!天将弃予,周之社稷将以属汝,今予欲师至道之言,以明传之子孙。”太公曰:“王何所问?”文王曰:“先圣之道,其所止,其所起,可得闻乎?”太公曰:“见善而...

2025-04-29

《六韬·文韬·国务》赏析

【原文】文王问太公曰:“原闻为国之大务,欲使主尊人安,为之奈何?”太公曰:“爱民而已。”文王曰:“爱民奈何?”太公曰:“利而勿害,成而勿败,生而勿杀,与而勿夺,乐而勿苦,喜而勿怒。”文王曰:“敢请释其...

2025-04-29