关于鸿蒙开发中Stage应用模型的相关介绍

应用模型 是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。

简言之:应用模型就是 应用的施工图纸,他规范了:程序运行流程、项目结构、文件功能等……

了解应用模型之后,就可以知道:

  1. 实现某个功能需要在哪个文件编码;
  2. 如何感知应用的状态变化(启动、关闭、且后台)
  3. 如何调整项目配置;
  4. …………

随着系统的演进发展,先后提供了两种应用模型:

  1. FA模型:从API 7开始支持的模型,已经不再主推
  2. Stage模型:从API 9开始新增的模型,是目前主推且会长期演进的模型

Stage模型 - 目录概览

AppScope > app.json5:应用的全局配置信息。

  • entry:HarmonyOS工程模块,编译构建生成一个HAP包。
    • src > main > ets:用于存放ArkTS源码。
    • src > main > ets > entryability:应用 / 服务的入口。
    • src > main > ets > pages:应用 / 服务包含的页面。
    • src > main > resources:用于存放应用 / 服务所用到的资源文件。
    • src > main > module.json5:模块应用配置文件。
    • build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
    • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
    • obfuscation-rules.txt:混淆规则文件。
  • oh_modules:用于存放三方库依赖信息。
  • build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等。
  • hvigorfile.ts:应用级编译构建任务脚本。

 Stage模型 - app.json5应用配置

应用配置在工程的AppScope目录下的app.json5配置文件中。

{
    "app": {
        "bundleName": "包名 不可省略",
        "vendor": "应用开发厂商描述 不可省略",
        "versionCode": "版本号 数值越大版本越高",
        "versionName": "给用户看的版本号",
        "icon": "应用图标",
        "label": "应用名"
    }
}

Stage模型 - module.json5模块配置

 module.json5配置文件,配置ability 入口图标 和 标签配置

{
    "module": {
        ...
        "abilities": [
            {
                "icon": "$media.icon",
                "label": "$string:EntryAbility_label"
            }
            ...
        ]
    }
}

Stage模型 - UIAbility组件

每一个UIAbility实例,都对应于一个最近任务列表中的任务。

UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互

一个应用可以有一个UIAbility,也可以有多个UIAbility。

  • 单UIAbility:任务列表中只有一个任务。
  • 多UIAbility:在任务列表中会有多个任务。
多UIAbility应用​​​​​
单UIAbility应用

 Stege模型 - UIAbility的添加和设置启动

Stage模型 - UIAbility组件的生命周期

 当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间切换。

  • onCreate:Ability创建时回调,执行初始化业务逻辑操作;
  • onDestory:Ability销毁时回调,执行资源清理等操作;
  • onForeground:应用从后台转到前台时触发;
  • onBackground:当应用从前台转到后台时触发;

……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/872893.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ELK学习笔记(二)——使用K8S部署Kibana8.15.0

上篇文章我们完成了,ES的集群部署,如果还没有看过上篇文章的兄弟,可以去看看。 ELK学习笔记(一)——使用K8S部署ElasticSearch8.15.0集群 话不多说,接下来直接进入kibana的搭建 一、下载镜像 #1、下载官方…

JS 封装方式

引言:本人是后台服务端开发的,前端的 js 都是在 html 中的 script 标签中写的,处理下数据啥,如果要有需要公共使用的方法啥的都是把方法直接丢在一个 js 文件里,然后 html 引入使用,没有关注过 js 的封装。…

【JavaEE初阶】多线程(2)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 线程的核心操作 创建线程start 线程的状态 线程的终止 定义一个变量实现 利用标志位实现 加上break/return 结束线程 线程等待 join 无参数版本 两个线程等待 多个线…

如何从 Bak 文件中恢复 SQL数据库?(3种方法)

如何从 .bak 文件恢复 SQL数据库? 在数据库管理和维护过程中,数据的安全性和完整性至关重要。备份文件(.bak 文件)是 SQL Server 中常用的数据库备份格式,它包含了数据库的完整副本,用于在数据丢失、系统故…

iLogtail 开源两周年:社区使用调查报告

作者:玄飏 iLogtail 作为阿里云开源的可观测数据采集器,以其高效、灵活和可扩展的特性,在可观测采集、处理与分析领域受到了广泛的关注与应用。在 iLogtail 两周年之际,我们对 iLogtail 开源社区进行了一次使用调研,旨…

Java入门:07.Java中的面向对象02

5 对象的使用 对象有两种使用情况 情况一: 对象本身,是一个引用类型的数据 所以他也可以像其他的所有数据一样,进行操作 如:存储,打印等。 int i 10 ; print(10) ; ​ //最终存储在变量中的是对象的地址。 Perso…

歌者PPT新功能速递!

本期功能更新,主要围绕 PPT 大纲编辑器和 PPT 翻译功能,全面提升了制作效率和灵活性,帮助你更轻松地完成 PPT 制作!一起来看看吧~👇 # 功能更新 1 PPT 大纲编辑器全面更新 📝 现在&#xff0c…

解决Metasploit调用Nessus报错问题

问题描述 Error while running command nessus_scan_new: undefined method []’ for nil:NilClass 解决方法 发现报错,经过网上查询解决方法 在Nessus服务器执行,下面的版本号可能有所不同,根据自己的情况更改,需要管理员身份执…

FreeRTOS学习笔记(二)任务基础篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 任务的基本内容1.1 任务的基本特点1.2 任务的状态1.3 任务控制块——任务的“身份证” 二、 任务的实现2.1 定义任务函数2.2 创建任务2.3 启动任务调度器2…

HOT 100(六)二分查找、栈

一、二分查找 1、搜索插入位置 初始化左右边界:left 指向数组的起始位置,right 指向数组的末尾。二分查找过程:不断计算中间位置 mid,根据 nums[mid] 与目标值 target 的比较结果,调整 left 和 right,从而…

Lenze伦茨E82ZBC, E82ZBB E82ZMBRB安装说明手测

Lenze伦茨E82ZBC, E82ZBB E82ZMBRB安装说明手测

VMware17 虚拟机下载以及 CentOS8 操作系统安装配置 一条龙全教程

目录 一、安装 vmware workstation 虚拟机 二、安装 CentOS8 操作系统 三、安装 FinalShell 远程连接 一、安装 vmware workstation 虚拟机 安装中...(耐心等待) 到此安装完成,点击启动运行 激活码如下: MC60H-DWHD5-H80U…

【个人笔记】VCS工具与命令

Title:VCS工具学习 一 介绍 是什么? VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件,竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code,同时内置了 仿…

API 网关 OpenID Connect 实战:单点登录(SSO)如此简单

作者:戴靖泽,阿里云 API 网关研发,Higress 开源社区 Member 前言 随着企业的发展,所使用的系统数量逐渐增多,用户在使用不同系统时需要频繁登录,导致用户体验较差。单点登录(Single Sign-On&a…

Python和MATLAB(Java)及Arduino和Raspberry Pi(树莓派)点扩展函数导图

🎯要点 反卷积显微镜图像算法微珠图像获取显微镜分辨率基于像素、小形状、高斯混合等全视野建模基于探测器像素经验建模荧光成像算法模型傅里叶方法计算矢量点扩展函数模型天文空间成像重建二维高斯拟合天体图像伽马射线能量和视场中心偏移角标量矢量模型盲解卷积和…

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码 递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打…

Quartz.Net_快速开始

简述 Quartz中主要分为三部分,JobDetail、Trigger、Scheduler,分别是任务、触发器、调度器,三者的关系为:Trigger控制JobDetail的执行时间和频率,而Scheduler负责将具体的Trigger与具体的JobDetail绑定 1.安装Quartz…

【无线通信发展史⑧】测量地球质量?重力加速度g的测量?如何推导单摆周期公式?地球半径R是怎么测量出来的?

前言:用这几个问答形式来解读下我这个系列的来龙去脉。如果大家觉得本篇文章不水的话希望帮忙点赞收藏加关注,你们的鼓舞是我继续更新的动力。 我为什么会写这个系列呢? 首先肯定是因为我本身就是一名从业通信者,想着更加了解自…

十大口碑最好开放式蓝牙耳机是哪些?五款热销好用产品测评!

​开放式耳机现在超火,成了时尚、好看又舒服的代名词,迅速俘获了一大波粉丝,成了耳机界的新宠儿。跟那些传统的入耳式耳机比起来,开放式耳机戴着更稳,对耳朵也更友好。不过,也有人觉得这玩意儿不值&#xf…

vue3集成sql语句编辑器

使用的是codemirror 安装 pnpm add codemirror vue-codemirror --savepnpm add codemirror/lang-sqlpnpm add codemirror/theme-one-dark使用 <template><codemirror v-model"configSql" placeholder"Code goes here..." ref"codemirrorR…