当前位置: 首页 > news >正文

HarmonyOS-初级(二)

文章目录

    • 应用程序框架
    • UIAbility
    • ArkUI框架

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖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报错内容&#xff1a; java: 无法访问org.springframework.boot.SpringApplication 报错原因&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4…...

线上+线下≠新零售,6大互通诠释新零售的核心要点-亿发

新零售&#xff0c;这个词汇在近年来频繁出现在我们的视野中&#xff0c;它不仅仅是线上与线下的简单相加&#xff0c;而是一场深刻的商业变革。本文将通过6大互通的核心要点&#xff0c;为您揭示新零售的真正内涵。 1. 商品的互联互通 新零售模式下&#xff0c;商品的互联互…...

GitHub Copilot革命性更新:整合顶尖AI模型,如何重塑开发体验?

在技术快速发展的今天&#xff0c;代码辅助工具已成为提升开发效率的利器。今天&#xff0c;我们带来了一个激动人心的消息——GitHub Copilot宣布引入多模型选择功能&#xff0c;这不仅是技术上的一次飞跃&#xff0c;更是对开发者工作流程的一次革新。 多模型选择&#xff1a…...

AWS账户是否支持区域划分?

在云计算的世界中&#xff0c;亚马逊网络服务&#xff08;AWS&#xff09;凭借其全球化的基础设施和丰富的服务选项受到许多企业和开发者的青睐。一个常见的问题是&#xff1a;AWS账户是否支持区域划分&#xff1f;为了回答这个问题&#xff0c;我们九河云一起深入了解AWS的区域…...

Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能

目录 Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能需求原型&#xff1a;相关数据&#xff1a;要导出的对象字段postman 格式导出对象VO 自定义批注拦截器业务代码&#xff1a; 拦截器代码解释&#xff1a;详细解释&#xff1a;格式优化&#xff1a; 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打开百度很慢,其他网页正常的解决办法,试了很多,找到了适合的

最近不知怎么的&#xff0c;Chrome突然间打开百度很慢&#xff0c;甚至打不开。不光我一个人遇到这问题&#xff0c;我同事也遇到这个问题。开发中难免遇到问题&#xff0c;需要百度&#xff0c;现在是百度不了。 作为一名开发人员&#xff0c;习惯了使用Chrome进行开发&#…...

深度学习Pytorch中的模型保存与加载方法

深度学习:Pytorch中的模型保存与加载方法 在 PyTorch 中&#xff0c;模型的保存和加载对于模型的持久化和后续应用至关重要。这里详细介绍了两种主要方法&#xff1a;保存整个模型&#xff08;包括架构和参数&#xff09;和仅保存模型的状态字典。以下内容进一步完善了加载模型…...

小红书矩阵运营:怎么通过多个账号来提升品牌曝光?

在如今的社交媒体环境中&#xff0c;小红书作为一个以分享生活方式、购物心得为主的平台&#xff0c;已经成为品牌营销的热土。尤其是通过“小红书矩阵”&#xff0c;品牌能够精准触达不同的用户群体&#xff0c;提升曝光度和转化率。那么&#xff0c;如何通过多个账号进行矩阵…...

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…...

罗技鼠标Linux党必备:手把手教你用LogiOps在Arch系系统上实现键鼠联动(附常见错误排查)

罗技鼠标Linux党终极指南&#xff1a;LogiOps在Arch系系统中的高阶键鼠联动实战 在Linux桌面环境中&#xff0c;罗技鼠标用户常常面临一个尴尬局面&#xff1a;硬件性能出色&#xff0c;但官方驱动对Linux支持有限。对于Arch Linux或Manjaro用户而言&#xff0c;LogiOps的出现彻…...

终极解决:Calibre中文路径乱码的完整指南

终极解决&#xff1a;Calibre中文路径乱码的完整指南 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#xff09;命名 项目地址: https://gitco…...

告别云端依赖:在树莓派4B上用sherpa-ncnn实现离线语音识别(C++实战)

树莓派4B离线语音识别实战&#xff1a;sherpa-ncnnC全流程解析 在智能家居、工业物联网等边缘计算场景中&#xff0c;语音交互正逐渐成为标配功能。但依赖云服务的方案存在延迟高、隐私泄露风险等问题&#xff0c;而树莓派这类嵌入式设备的计算资源又有限。本文将带你用sherpa…...

taotoken平台新手指南五分钟完成openai兼容api的python接入

Taotoken平台新手指南&#xff1a;五分钟完成OpenAI兼容API的Python接入 1. 准备工作 在开始编写代码之前&#xff0c;您需要完成两个简单的准备工作。首先&#xff0c;访问Taotoken控制台并创建一个API密钥。登录后&#xff0c;在"API密钥管理"页面点击"新建…...

安装与初体验:5 分钟跑通你的第一个 Qoder 任务

标签&#xff1a;#Qoder #安装教程 #Agentic编码 #AI开发工具 #上下文工程 1. 写在前面 上一篇文章我们了解了 Qoder 能做什么。 这一篇&#xff0c;不聊概念&#xff0c;直接动手。 目标&#xff1a;5 分钟之内完成 Qoder 的安装、项目配置&#xff0c;并让它帮你完成一个真…...

从Kali到实战:手把手教你用CobaltStrike 4.0搭建渗透测试环境(附汉化与避坑指南)

从零构建CobaltStrike 4.0渗透测试环境&#xff1a;Kali Linux实战指南 在网络安全领域&#xff0c;渗透测试工具的选择往往决定了工作效率和测试深度。作为一款集成了多种高级功能的专业级工具&#xff0c;CobaltStrike 4.0&#xff08;简称CS&#xff09;已经成为众多安全研…...

GIMP Resynthesizer终极指南:如何用AI纹理合成技术彻底改变你的图像编辑工作流

GIMP Resynthesizer终极指南&#xff1a;如何用AI纹理合成技术彻底改变你的图像编辑工作流 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 你是否曾经为照片中难以去除的水印…...

若依框架导航栏改造实战:删除多余功能、自定义面包屑与全局布局调整避坑指南

若依框架导航栏深度定制&#xff1a;从功能精简到布局联动的完整解决方案 在内部管理系统开发中&#xff0c;若依框架因其丰富的预设功能而备受青睐&#xff0c;但默认的导航栏设计往往包含过多与企业需求无关的元素。本文将带你从实际业务场景出发&#xff0c;系统性地解决导航…...

2026最新ConsentFix v3深度解析:自动化OAuth钓鱼如何绕过MFA接管Azure账户

引言&#xff1a;MFA普及时代的"隐形杀手" 2026年第一季度&#xff0c;全球网络安全格局发生了一个标志性转变&#xff1a;随着多因素认证(MFA)在企业中的普及率突破92%&#xff0c;传统的密码窃取攻击成功率已降至不足3%。然而&#xff0c;就在安全行业普遍认为&quo…...

终极指南:如何用WaveTools快速管理多个鸣潮游戏账号

终极指南&#xff1a;如何用WaveTools快速管理多个鸣潮游戏账号 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 如果你是一位鸣潮玩家&#xff0c;同时拥有多个游戏账号&#xff0c;那么你一定经历过频繁登…...