今日看点

【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

相关阅读

秦朝覆灭后:嬴姓为何几近消失于历史长河?

公元前207年,随着子婴向刘邦献出玉玺,曾经横扫六合、统一中国的秦王朝轰然崩塌。这个开创中央集权制度、奠定中国两千余年政治格局的帝国,在短短十五年间便走向了灭亡。而更令人唏嘘的是,作为帝国皇族的嬴姓,...

2025-10-14

帝宠难撼宗法:刘邦为何未立戚夫人为皇后?

汉初宫廷中,戚夫人以绝世容颜与“翘袖折腰之舞”深受刘邦宠爱,甚至在储位之争中掀起惊涛骇浪。然而,这位让帝王“日夜啼泣”求立太子的宠妃,却始终未能撼动吕雉的皇后之位。这场权力博弈的背后,是宗法制度、政治...

2025-10-14

卫青身后事:汉武帝对卫氏家族的权力清算与历史真相

在中国古代帝王与功臣的关系中,卫青与汉武帝的君臣互动堪称特殊样本。卫青以骑奴之身崛起为大汉军神,其家族更因卫子夫入宫而跻身顶级外戚集团。然而,卫青死后,卫氏家族的命运急转直下,甚至被卷入"巫蛊之祸"的...

2025-10-14

霍去病:汉朝铁骑铸就的战神传奇

在中国古代军事史上,霍去病是一个无法绕过的名字。这位年仅二十四岁便英年早逝的西汉名将,以六次出征匈奴、四战封神的战绩,成为汉武帝时期军事扩张的核心人物。他的存在,不仅是汉朝对抗匈奴的锋利刀刃,更是中国...

2025-10-14

草原迷途:霍去病精准制敌与李广屡次迷路的深层逻辑

汉武帝时期,卫青、霍去病两位将领以雷霆之势横扫匈奴,而同期名将李广却因“迷路”问题屡次错失战功,最终在漠北之战中因失道自刎。同样是征战草原,为何霍去病能精准定位匈奴主力,而李广却屡陷迷途?这一差异背后...

2025-10-14

吴懿:从降将到国舅,蜀汉后期的定海神针

在蜀汉政权跌宕起伏的历史中,吴懿是一个兼具政治智慧与军事才能的特殊人物。他既是刘备的姻亲,又是诸葛亮北伐的核心将领,更在蜀汉后期独镇汉中,成为维系政权稳定的关键人物。其人生轨迹,堪称一部从乱世降将到帝...

2025-10-14

虎步关右的陨落:夏侯渊真实实力与定军山之败的深层剖析

东汉末年,曹魏阵营中涌现出诸多能征善战的将领,夏侯渊便是其中极具代表性的一位。他以“三日可行五百里,六日可赴千里”的行军速度闻名,更因横扫关中、凉州,被曹操赞为“虎步关右”。然而,这位曹魏西部战线的军...

2025-10-14

权柄与裂痕:高滔滔的治国遗产与宋哲宗的隐痛

在北宋中后期的政治舞台上,高滔滔以“女中尧舜”之名被载入史册,但其执政期间与继任者宋哲宗的矛盾,却成为后世史家争论的焦点。这位历经四朝的太皇太后,以铁腕手段终结王安石变法,却因权力独断与政策转向,在孙...

2025-10-14

皇权传承的隐秘逻辑:赵匡胤传位弟弟的深层动因

公元976年,宋太祖赵匡胤猝然崩逝于万岁殿,次日其弟赵光义即位,史称宋太宗。这场“兄终弟及”的权力交接,打破了自夏商周以来“父死子继”的皇位传承传统,更因“烛影斧声”的疑云成为历史谜题。当赵匡胤的两个...

2025-10-14

明朝之殇:万历帝如何亲手埋葬大明王朝

在明朝276年的历史中,万历皇帝朱翊钧的48年统治堪称最矛盾的篇章——他既开创了“万历中兴”的短暂繁荣,又以怠政、敛财与党争放任,将帝国推向不可逆的衰亡。历史学家黄仁宇在《万历十五年》中直言:“158...

2025-10-14