HarmonyOS-初级(二)
文章目录
- 应用程序框架
- UIAbility
- ArkUI框架

🏡作者主页:点击!
🤖HarmonyOS专栏:点击!
⏰️创作时间:2024年11月28日13点10分

应用程序框架
应用程序框架可以被看做是应用模型的一种实现方式。
Stage模型设计思想
- 为复杂应用而设计
- 原生支持应用组件的跨端迁移和多段协同
- 支持多设备和多窗口形态
- 平衡应用能力与系统管控成本
Module.json5包括
- 模块名称
- 模块类型
- 以及当前模块可以运行在哪类设备上
- 另外还定义了当前模块的应用组件的配置信息:UIAbility名称,基本描述,入口代码路径
- 模块的路由表信息(跳转页面名称、页面所在模块名称、页面路径等路由配置信息)
- 向系统申请权限信息
oh-package.json5
- 主要定义了名称、版本号、简介、作者以及代码中依赖的三方库信息
资源文件
- 应用资源目录:Appscope----resources----base----
- 模块级资源:Entry----src----main----resources
Dev Eco 默认会在 profile 文件下生成 main_pages 配置文件
- 定义了模块页面的路由集合
- rawfile中的资源会被直接打包进应用,不经过编译也不会赋予资源文件ID
UIAbility
UIAbility是一种包含用户界面的应用组件,用于和用户进行交互,UIAbility是系统调度资源的单元,提供窗口用于绘制
、UI Ability 的生命周期
- UIAbility Start
- Create:应用初始化、变量定义、资源加载
- WindowStageCreate(管理UI功能的两个生命周期回调)
- Foreground:进入此状态之前系统会创建一个WindowStageCreate回调,在该回调中可通过loadContent方法设置应用需要加载的页面,并根据需要订阅windowStage事件
- Background:(fore…和back…分别在UIAbility实例切换到前台或后台时触发)
- WindowStageDestroy(管理UI功能的两个生命周期回调)(UIAbility实例销毁之前会先进入 WindowStageDestroy中释放资源)
- Destroy:用户从最近任务关闭任务时,可以销毁 UIAbility 实例,此时会触发Destroy状态
- UIAbility End
ArkUI框架
- 极简开发
- 高性能
- 跨设备
- 跨平台
声明式开发范式
基于ArkTS的声明式开发范式核心:数据驱动UI页面更新
常见组件:
- Button按钮,类型包括胶囊按钮,圆形按钮,普通按钮。作容器组件使用时可添加子组件实现包含文字,图片等元素的按钮
- Text:文本组件,通常用于显示用户视图
- Image:按钮中的icon、网络图片、本地图片等
- 线性布局 Row、Column
Column:容器内子元素按照垂直方向排列
Row:容器内子元素按照水平方向排列- List列表:复杂的容器
- 网格布局:具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局
Grid / Gridltem- swiper 轮播组件:本身是一个容器,当设置了多个子组件后,可以对这些子组件进行轮播显示
- WaterFlow:由行和列分割的单元格组成,通过容器自身排列,将不同大小的项目自上而下进行布局
- PatternLock:九宫格输入密码组件
- slider:验证码拖动验证的场景
- Tabs:通过页签进行内容视图切换的容器组件
- CustomDialog:自定义弹窗组件
- CalenderPicker:月历日历选择器
- TextPicker:滚动选择
- DatePicker:日期滚动选择
- TimePicker:时间滚动选择
Dev Eco Studio关键能力
- 一致性
- 实时预览、双向预览
- 多维度
ArkUI通过类自然语言的UI描述和组合,精简了开发语法,并拥有多态组件、自定义组件
ArkTS是基于TypeScript的声明式语法扩展,通过状态管理可以实现组件内组件间跨设备的交互体验,同时通过XComponent组件实现ArkTS和C++的混合开发,实现渲染后端的能力
相关文章:
HarmonyOS-初级(二)
文章目录 应用程序框架UIAbilityArkUI框架 🏡作者主页:点击! 🤖HarmonyOS专栏:点击! ⏰️创作时间:2024年11月28日13点10分 应用程序框架 应用程序框架可以被看做是应用模型的一种实现方式。 …...
Unity开启外部EXE程序
Unity开启外部EXE using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading.Tasks; using UnityEditor; using UnityEngine;public class Unity_OpenExe : Mono…...
CTF之密码学(埃特巴什码 )
一、基本原理 埃特巴什码的原理是:字母表中的最后一个字母代表第一个字母,倒数第二个字母代表第二个字母,以此类推。在罗马字母表中,对应关系如下: 常文(明文):A B C D E F G H I …...
深入解析 PyTorch 的 torch.load() 函数:用法、参数与实际应用示例
深入解析 PyTorch 的 torch.load() 函数:用法、参数与实际应用示例 函数 torch.load() 是一个在PyTorch中用于加载通过 torch.save() 保存的序列化对象的核心功能。这个函数广泛应用于加载预训练模型、模型的状态字典(state dictionaries)、…...
ros2键盘实现车辆: 简单的油门_刹车_挡位_前后左右移动控制
参考: ROS python 实现键盘控制 底盘移动 https://blog.csdn.net/u011326325/article/details/131609340游戏手柄控制 1.背景与需求 1.之前实现过 键盘控制 底盘移动的程序, 底盘是线速度控制, 效果还不错. 2.新的底盘 只支持油门控制, 使用线速度控制问题比较多, 和底盘适配…...
ubuntu安装chrome无法打开问题
如果在ubuntu安装chrome后,点击chrome打开没反应,可以先试着在terminal上用命令打开 google-chrome 如果运行命令显示 Chrome has locked the profile so that it doesnt get corrupted. If you are sure no other processes are using this profile…...
CTF-RE 从0到N:Chacha20逆向实战 2024 强网杯青少年专项赛 EnterGame WP (END)
只想解题的看最后就好了,前面是算法分析 Chacha20 c语言是如何利用逻辑运算符拆分变量和合并的 通过百度网盘分享的文件:EnterGame_9acdc7c33f85832082adc6a4e... 链接:https://pan.baidu.com/s/182SRj2Xemo63PCoaLNUsRQ?pwd1111 提取码:1…...
vue3 ajax获取json数组排序举例
使用axios获取接口数据 可以在代码中安装axios包,并写入到package.json文件: npm install axios -S接口调用代码举例如下: const fetchScore async () > {try {const res await axios.get(http://127.0.0.1:8000/score/${userInput.v…...
web安全之信息收集
在信息收集中,最主要是就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息,目标网站系统,CMS指纹,目标网站真实IP,开放端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。 1.1收集域名信息 知道目标的域名之后,获取域名的注册信…...
报错:java: 无法访问org.springframework.boot.SpringApplication
idea报错内容: java: 无法访问org.springframework.boot.SpringApplication 报错原因: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4…...
线上+线下≠新零售,6大互通诠释新零售的核心要点-亿发
新零售,这个词汇在近年来频繁出现在我们的视野中,它不仅仅是线上与线下的简单相加,而是一场深刻的商业变革。本文将通过6大互通的核心要点,为您揭示新零售的真正内涵。 1. 商品的互联互通 新零售模式下,商品的互联互…...
GitHub Copilot革命性更新:整合顶尖AI模型,如何重塑开发体验?
在技术快速发展的今天,代码辅助工具已成为提升开发效率的利器。今天,我们带来了一个激动人心的消息——GitHub Copilot宣布引入多模型选择功能,这不仅是技术上的一次飞跃,更是对开发者工作流程的一次革新。 多模型选择:…...
AWS账户是否支持区域划分?
在云计算的世界中,亚马逊网络服务(AWS)凭借其全球化的基础设施和丰富的服务选项受到许多企业和开发者的青睐。一个常见的问题是:AWS账户是否支持区域划分?为了回答这个问题,我们九河云一起深入了解AWS的区域…...
Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能
目录 Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能需求原型:相关数据:要导出的对象字段postman 格式导出对象VO 自定义批注拦截器业务代码: 拦截器代码解释:详细解释:格式优化: Easy Excel…...
整数对最小和(Java Python JS C++ C )
题目描述 给定两个整数数组array1、array2,数组元素按升序排列。 假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素, 并对取出的所有元素求和,计算和的最小值。 注意: 两对元素如果对应于array1、array2中的两个下标均相同,则视为同一对元…...
MySQL 启动失败问题分析与解决方案:`mysqld.service failed to run ‘start-pre‘ task`
目录 前言1. 问题背景2. 错误分析2.1 错误信息详解2.2 可能原因 3. 问题排查与解决方案3.1 检查 MySQL 错误日志3.2 验证 MySQL 配置文件3.3 检查文件和目录权限3.4 手动启动 MySQL 服务3.5 修复 systemd 配置文件3.6 验证依赖环境 4. 进一步优化与自动化处理结语 前言 在日常…...
谷歌浏览器Chrome打开百度很慢,其他网页正常的解决办法,试了很多,找到了适合的
最近不知怎么的,Chrome突然间打开百度很慢,甚至打不开。不光我一个人遇到这问题,我同事也遇到这个问题。开发中难免遇到问题,需要百度,现在是百度不了。 作为一名开发人员,习惯了使用Chrome进行开发&#…...
深度学习Pytorch中的模型保存与加载方法
深度学习:Pytorch中的模型保存与加载方法 在 PyTorch 中,模型的保存和加载对于模型的持久化和后续应用至关重要。这里详细介绍了两种主要方法:保存整个模型(包括架构和参数)和仅保存模型的状态字典。以下内容进一步完善了加载模型…...
小红书矩阵运营:怎么通过多个账号来提升品牌曝光?
在如今的社交媒体环境中,小红书作为一个以分享生活方式、购物心得为主的平台,已经成为品牌营销的热土。尤其是通过“小红书矩阵”,品牌能够精准触达不同的用户群体,提升曝光度和转化率。那么,如何通过多个账号进行矩阵…...
Llama-2-7b:vocab size:32000;embeddings:4096;hidden_layers是什么意思
目录 Llama-2-7b:vocab size:32000;embeddings:4096 vocab size:模型能解析词汇数量==n_vocab num_hidden_layers: 32 nanogpt隐藏层4 "initializer_range": 0.02 Token Embed是什么 举例说明 不同Chat版本的Token Embed(Token Embeddings) 区别 Llama…...
YOLOv8实战:TaskAlignedAssigner在目标检测中的动态样本匹配技巧
YOLOv8实战:TaskAlignedAssigner在目标检测中的动态样本匹配技巧 目标检测作为计算机视觉领域的核心任务之一,其性能提升的关键在于如何更有效地匹配预测框与真实标注。YOLOv8引入的TaskAlignedAssigner通过创新的动态匹配策略,显著提升了检测…...
GLM-4.7-Flash快速上手:开箱即用的最强开源LLM,小白也能秒懂Web界面
GLM-4.7-Flash快速上手:开箱即用的最强开源LLM,小白也能秒懂Web界面 想体验最新最强的开源大模型,但被复杂的部署步骤劝退?担心自己不懂代码,面对命令行无从下手?今天,我要给你介绍一个“懒人福…...
不只是复现:用SwinIR和DIV2K数据集训练自己的图像超分辨率模型
从零构建:基于SwinIR与DIV2K的定制化超分辨率训练实战 当你在社交媒体上看到一张模糊的老照片时,是否想过用AI技术让它重获新生?图像超分辨率技术正从实验室走向大众视野,而SwinIR作为该领域的新星,以其独特的Transfor…...
Qwen2-VL-2B-Instruct入门指南:Streamlit界面分区逻辑与交互事件绑定
Qwen2-VL-2B-Instruct入门指南:Streamlit界面分区逻辑与交互事件绑定 1. 工具简介与核心价值 Qwen2-VL-2B-Instruct是一个基于GME-Qwen2-VL模型开发的多模态嵌入与比对工具。这个工具的核心能力是将文本和图片转换成统一的向量表示,然后计算它们之间的…...
RuoYi-Vue3后台隐藏顶部栏和侧边栏的另一种思路:基于路由meta的动态布局方案
RuoYi-Vue3动态布局方案:基于路由meta的架构级实践 在开发企业级后台系统时,我们常常会遇到需要根据不同页面动态调整整体布局的需求。传统方案往往通过在组件内部维护状态或调用全局方法来控制布局元素的显隐,这种方式虽然能快速实现功能&am…...
如何高效完成从SVN到Git的完整迁移:svn2git实战指南
如何高效完成从SVN到Git的完整迁移:svn2git实战指南 【免费下载链接】svn2git 项目地址: https://gitcode.com/gh_mirrors/sv/svn2git 在软件开发生命周期中,版本控制系统迁移是一个关键但充满挑战的任务。随着Git在分布式版本控制领域的统治地位…...
CocosCreator 3.x 实战:用碰撞组件做个‘切水果’小游戏(附完整源码)
CocosCreator 3.x 实战:用碰撞组件打造切水果游戏全流程 想象一下,当你用手指划过屏幕,水果应声而裂,汁水四溅,分数随之飙升——这就是我们要用CocosCreator 3.x实现的切水果游戏。不同于枯燥的理论讲解,我…...
YOLOv9训练推理镜像体验:预装依赖+示例数据,轻松上手目标检测
YOLOv9训练推理镜像体验:预装依赖示例数据,轻松上手目标检测 1. 为什么选择这个镜像? 目标检测是计算机视觉中最基础也最实用的技术之一,而YOLOv9作为该领域的最新成果,在精度和速度上都有显著提升。但很多开发者在尝…...
InvenTree完全指南:从新手到高手的4个进阶阶段
InvenTree完全指南:从新手到高手的4个进阶阶段 【免费下载链接】InvenTree Open Source Inventory Management System 项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree InvenTree是一款功能强大的开源库存管理系统,专为中小企业和个…...
照着用就行:8个降AIGC网站测评,专科生降AI率必备攻略
在如今的学术写作中,AI生成内容(AIGC)已经成为许多学生和研究者必须面对的问题。无论是论文初稿还是最终定稿,如何有效降低AI痕迹、避免查重率过高,成为了关键任务。而AI降重工具的出现,正是为了解决这一痛…...
