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…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
