【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十五)

本文主要是介绍【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

课程地址: 黑马程序员HarmonyOS4+NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发

(本篇笔记对应课程第 23 - 24 节)

P23《22.Stage模型-基本概念》

在这里插入图片描述

在这里插入图片描述

一个应用可以有很多的能力,每个能力可以成为一个 Ability Module,比如微信,主要是一个设计APP,其聊天、朋友圈这些能力都属于社交范围,可以放在同一个 Ability Module 中。后来微信又拓展了小程序、视频号等功能,这些功能与社交有了一定不同,可以分别放在不同的 Ability Module 中。

在开发这些 Ability Module 的过程中,势必会存在一些通用的工具、资源、配置文件等,如果每个模块都单独开发与维护,显示是一种浪费。我们会将这些公共的资源抽取出来,放到一个公共的模块,成为 Library Module,是一种共享依赖类型的模块。 Ability Module 就可以引用 Library Module, 使用其中的功能。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

每个module可以单独打包编译,所有 Ability Module 编译时会被编译为 HAP(Harmony Ability Package); Library Module 编译时会被编译为 HSP(Harmony Shared Package),即共享类型的包; HAP类型的包在运行时就可以引用和依赖 HSP 类型的包。

在这里插入图片描述

一个应用的内部可能有各种各样不同的能力,这样就会分为多个不同的 Ability Module,打包后就会有多个 HAP 类型的文件。其中,Entry Module 里主要开发应用进入时的页面、以及整个应用的主能力模块,即最核心的部分。剩余部分即为拓展模块。

一个应用有且只能有一个Entry类型的HAP,可以有多个 Feature 类型的HAP。多个HAP会打包到一起成为一个bundle ,这个 bundle 会有一个名字,可以理解为这个应用的唯一标识。将来还会打包成为一个 .app 类型的文件。

多HAP模式的优势:1、降低各个HAP模块的耦合性;2、用户安装应用时可以选择部分核心功能进行安装

在这里插入图片描述

在这里插入图片描述

在运行期,首先需要有一个 AbilityStage , 在其上展示 Ability , Ability 有不同的类型,常见的有 UIAbility, ExtensionAbility , UIAbility 是包含UI界面的应用组件,除了它还会有 ExtensionAbility ,比如输入法相关的功能。开发主流的应用都是基于 UIAbility 的。

UIAbility 作为UI界面的组件,将来要展示 UI界面,但它不是直接展示UI的。它首先持有一个 WindowStage 的实例对象, WindowStage 与 AbilityStage 类似,都是一个“舞台”,它是组件内窗口的舞台,UI组件内部需要有一个窗口,这个窗口需要展示在一个舞台上, WindowStage 上会持有Window对象,即窗口,窗口里去展示UI界面。

正是由于存在这种“舞台”的机制,ability 和 window 就分隔开了,它们之间就解耦了。将来我们开发一些跨设备的应用时,就可以根据不同设备的窗口单独去做一些处理去适应不同的设备。

在这里插入图片描述

P24《23.Stage模型-应用配置文件》

应用的配置文件分为两类:一类是全局配置文件,放在 AppScope 目录下,如 app.json5 ;另一类就是应用内部的每个模块里,如 entry 模块中的 module.json5 。

在这里插入图片描述

我们打开AppScope下的 app.json5 看一下:

bundleName : 应用的包名,它是应用的唯一标识,一般用域名倒写的方式命名。它是在创建应用时就设置好了。

在这里插入图片描述

在这里插入图片描述

versionCode : 版本信息
versionName : 版本信息
icon : 应用图标,读取的就是media 下的 app_icon 资源
label :

由于是全局配置文件,它读取的也是全局下的 resources 下对应的资源:
在这里插入图片描述

**注意这里的 icon 与 label 不是我们在手机桌面上看到的图标与名称,而是在应用列表中的应用图标与名称,**在这里进入应用列表:

在这里插入图片描述

进入 应用管理:

在这里插入图片描述

滑到最下方,可以看到我们的应用:

在这里插入图片描述

再来看下 entry 模块下的 module.json5 配置文件:

在这里插入图片描述

type: 是该模块的类型,可以有三个值: entry feature shared

在这里插入图片描述
mainElement : 可以理解成当前这个模块的入口,每个模块编译后都是一个HAP文件,都是可以独立运行的,它在独立运行时,需要先创建一个 AblityStage 在这个舞台上去创建一个 Ability。在一个模块内部可以创建多个 Ability。如果这个应用有多个 Ability,默认只能启动一个,默认启动的这个就叫做入口 Ability。mainElement 就是定义入口 Ability 的名字的,它可不是随便起的哦!

在这里插入图片描述
**deviceType :**在一个应用(项目)下可以有多个模块,每个模块将来都会被打包成一个HAP文件,可以给不同的HAP模块设置不同的设备类型

deliveryWithInstall : 前面说了不同的模块可以选择性安装,其中 enter 类型的模块必须安装,而 feature类型的可以选择性安装,deliveryWithInstall 为true就是必须安装,false则是非必须安装

在这里插入图片描述
pages : 当前模块下的所有页面信息,读取的是 profile 下的 main_pages.json 文件中定义的页面信息;

abilities : 模块下如果有多个 abilities,就需要在这里配置 abilities 信息。

由于当前模块 enter 是入口模块,该模块只有一个 ablity 就是入口 ablity ,所以当前 ablity 的 icon 和label就成了应用的 icon 和label 了

在这里插入图片描述

在这里插入图片描述

在这里改不太好,因为 element下是默认的,不同语言环境下还有其配置文件,应该优先改 不同语言环境下的配置。一个个改太麻烦了,我们点击 打开编辑器 按钮,它将多个限定词下的配置项都列出来了,可以直接在这里修改:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

**startWindowBackground:**应用启动时的图标和背景色:

在这里插入图片描述

验证修改效果:

在这里插入图片描述

由于设置有缓存,将设置清理掉再次查看:

在这里插入图片描述
在这里插入图片描述

更多配置信息:
在这里插入图片描述

这篇关于【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081257

相关文章

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2