鸿蒙开发图形图像:【图形子系统】

图形子系统

图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS应用框架满足硬件资源较小的物联网设备或者构建基于标准OS的应用框架满足富设备的OpenHarmony系统应用开发。

1.1 轻量系统

简介

图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS的应用框架,满足硬件资源较小的物联网设备的OpenHarmony系统应用开发。

图 1 图形子系统架构图

各模块介绍:

  • View:应用组件,包括UIView、UIViewGroup、UIButton、UILabel、UILabelButton、UIList、UISlider等。
  • Animator:动画模块,开发者可以自定义动画。
  • Layout:布局控件,包括FlexLayout、GridLayout、ListLayout等。
  • Transform:图形变换模块,包括旋转、平移、缩放等。
  • Event:事件模块,包括click、press、drag、long press等基础事件。
  • Rendering engine:渲染绘制模块。
  • 2D graphics library:2D绘制模块,包括直线、矩形、圆、弧、图片、文字等绘制。包括软件绘制和硬件加速能力对接。
  • Multi-language:多语言模块,用于处理不用不同语言文字的换行、整形等。
  • Image library:图片处理模块,用于解析和操作不同类型和格式的图片,例如png、jpeg、ARGB8888、ARGB565等
  • WindowManager:窗口管理模块,包括窗口创建、显示隐藏、合成等处理。
  • InputManager:输入事件管理模块。

约束

  • 图形组件不支持多线程并发操作,建议相关操作都在ui线程中执行;
  • utils/interfaces/innerkits/graphic_config.h文件列举了图形部分可配置功能的宏开关,需要在编译前配置,配置时需要注意部分宏开关是分平台配置的。

鸿蒙开发学习知识已更新gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md前往参考。

鸿蒙开发OpenHarmony就业必修技能.png

1.2 标准系统

简介

图形子系统 提供了图形接口能力。

其主要的结构如下图所示:

图形子系统架构图

OpenHarmony 图形栈的分层说明如下:

• 接口层:提供图形的 Native API能力,包括:WebGL、Native Drawing的绘制能力、OpenGL 指令级的绘制能力支撑等。

• 框架层:分为 Render Service、Drawing、Animation、Effect、显示与内存管理五个模块。

模块能力描述
Render Service (渲染服务)提供UI框架的绘制能力,其核心职责是将ArkUI的控件描述转换成绘制树信息,根据对应的渲染策略,进行最佳路径渲染。同时,负责多窗口流畅和空间态下UI共享的核心底层机制。
Drawing (绘制)提供图形子系统内部的标准化接口,主要完成2D渲染、3D渲染和渲染引擎的管理等基本功能。
Animation (动画)提供动画引擎的相关能力。
Effect (效果)主要完成图片效果、渲染特效等效果处理的能力,包括:多效果的串联、并联处理,在布局时加入渲染特效、控件交互特效等相关能力。
显示与内存管理此模块是图形栈与硬件解耦的主要模块,主要定义了OpenHarmony显示与内存管理的能力,其定义的HDI接口需要让不同的OEM厂商完成对OpenHarmony图形栈的适配.

• 引擎层:包括2D图形库和3D图形引擎两个模块。2D图形库提供2D图形绘制底层API,支持图形绘制与文本绘制底层能力。3D图形引擎能力尚在构建中。

鸿蒙开发岗位需要掌握那些核心要领?

目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

废话就不多说了,接下来好好看下这份资料。

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

其中内容包含:

《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

  1. ArkTS语言
  2. 安装DevEco Studio
  3. 运用你的第一个ArkTS应用
  4. ArkUI声明式UI开发
  5. .……

《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

  1. Stage模型入门
  2. 网络管理
  3. 数据管理
  4. 电话服务
  5. 分布式应用开发
  6. 通知与窗口管理
  7. 多媒体技术
  8. 安全技能
  9. 任务管理
  10. WebGL
  11. 国际化开发
  12. 应用测试
  13. DFX面向未来设计
  14. 鸿蒙系统移植和裁剪定制
  15. ……

《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

  1. ArkTS实践
  2. UIAbility应用
  3. 网络案例
  4. ……

最后

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis五种数据结构,以及所对应在大厂中的实战应用

Redis五种数据结构,以及所对应在大厂中的实战 String应用场景(单值缓存、对象缓存、分布式锁、计数器、存储session集群共享、分布式全局序列号) Hash应用场景对象缓存、电商购物车、购物车操作优点:1. 同类别归类存储 2. 消耗更小…

实至名归!苏州金龙旅行家荣获“高端旅游之星”殊荣

荣光熠熠,加冕时刻!苏州金龙KLQ6127旅行家再度以出众实力,在高端用车领域璀璨夺目。 3月20日,见证中国品牌力量——2024(第四届)中国商用车品牌营销盛典在北京隆重举办。此次盛典旨在表彰卓越,…

DXP学习2- 绘制电气图【实验】

目录 一、实验目的 二、实验原理 1、创建一个新的项目文件。 2、新建原理图文件 3、设置原理图选项 4、放置元器件 5、其他电路元素的放置 6、对所有电路元素属性参数值的修改 三、实验设备 四、实验内容 1、绘制实验图2-1 元器件所在位置: 1,…

yank+mermaid+甘特图实例

因为notion对于mermaid支持很一般,尤其是甘特图,如果时间跨度大、节点多,字号会小到看不见,非常不方便。 同样的代码,在notion中如下图所示:(下图是我的一份年度规划) (…

STM32之HAL开发——初识HAL库

HAL库介绍 自从ST公司推出HAL库来替代原有的标准库,HAL库开始慢慢的被广大STM32开发者所接受,现在已经在实际的项目开发中大量使用,HAL库使得项目的移植变得简单容易。 Drivers:文件夹下是官方的 CMSISI 库, HAL 库&am…

全网最详细的生产小工单介绍——生产看板介绍篇

生产小工单,你了解多少?生产小工单在生产管理中扮演着怎样的角色?生产小工单适用于哪些对象和业务流程?生产小工单又能为企业带来哪些显著优势?如何高效搭建生产看板模板,让生产小工单发挥最大价值&#xf…

详解rtklib中main函数如何配置文件

目录 Step1:如何给rtklib中的主函数 rnx2rtkp 传参 Step2:给配置选项结构体赋默认值 Step3:继续配置 Step4:寻找 main 函数参数中的 -k Step5:依次遍历参数 Step1:如何给rtklib中的主函数 rnx2rtkp 传参…

第十四届蓝桥杯JavaB组省赛真题 - 阶乘求和

/ 10^9考虑前九位,% 10^9保留后9位 解题思路: 求获取结果的后九位数字,需要对10^9取余,因为202320232023这个数字的阶乘太大,必须要减少计算量,因为当一个整数乘以10^9后对其取余,那么结果都为0。 所以我…

Linux系统------------MySQL事务

目录 一、MySQL事务的概念 二、事务的ACID特点 ●原子性 ●一致性 ●隔离性 ●持久性 事务之间的相互影响有以下几种: ①脏读 ②不可重复读 ③幻读 ④丢失更新 三、Mysql及事务隔离级别 3.1Mysql及事务隔离级别 (1)read…

【微服务】Feign远程调用

📝个人主页:五敷有你 🔥系列专栏:微服务 ⛺️稳中求进,晒太阳 先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题:代码可读性差,编程体验不统一参数复杂URL…

vant4实现图片放大预览

页面引入showImagePreview (展示一个全屏的图片预览组件) import { showImagePreview } from vant;van-image 是用来展示的小图 点击小图 调用showImagePreview放大 <van-cell v-if"img ! null && img.length ! 0" title"图片预览"></van…

荒野大镖客2缺少emp.dll的多种解决方法分享,快速搞定游戏报错问题

在计算机游戏运行过程中&#xff0c;如果出现提示“游戏显示emp.dll丢失”的情况&#xff0c;这可能会引发一系列的问题与故障。首先&#xff0c;由于emp.dll是游戏运行所必需的重要动态链接库文件之一&#xff0c;它的缺失将直接影响到游戏程序的正常启动与执行。具体来说&…

搭建GItlab实现自动化部署Springboot项目(超详细)

提示&#xff1a;本例程中使用Docker搭建GItlab&#xff0c;Gitlab runner 通过编写CICD文件实现Springboot项目自动部署。 1、拉取GitLab镜像 命令&#xff1a; docker pull gitlab/gitlab-ce2、部署Gitlab&#xff1a; 我们通过docker搭建的gitlab部署项目的时候会出现一个…

Python Flask框架 -- 模版继承

一个网站中&#xff0c;大部分网页的模块是重复的&#xff0c;比如顶部的导航栏&#xff0c;底部的备案信息。如果在每个页面中都重复的去写这些代码&#xff0c;会让项目变得臃肿&#xff0c;提高后期维护成本。比较好的做法是&#xff0c;通过模板继承&#xff0c;把一些重复…

DP:斐波那契数列模型

创作不易&#xff0c;感谢三连支持 &#xff01; 斐波那契数列用于一维探索的单峰函数之中&#xff0c;用于求解最优值的方法。其主要优势为&#xff0c;在第一次迭代的时候求解两个函数值&#xff0c;之后每次迭代只需求解一次 。 一、第N个泰波那契数 . - 力扣&#xff08;…

[LLM] 大模型基础|预训练|有监督微调SFT | 推理

现在的大模型在进行预训练时大部分都采用了GPT的预训练任务&#xff0c;即 Next token prediction。 要理解大语言模型&#xff08;LLM&#xff09;&#xff0c;首先要理解它的本质&#xff0c;无论预训练、微调还是在推理阶段&#xff0c;核心都是next token prediction&#…

Wireshark 抓包工具与长ping工具pinginfoview使用,安装包

一、Wireshark使用 打开软件&#xff0c;选择以太网 1、时间设置时间显示格式 这个时间戳不易直观&#xff0c;我们修改 2、抓包使用的命令 1&#xff09;IP地址过滤 ip.addr192.168.1.114 //筛选出源IP或者目的IP地址是192.168.1.114的全部数据包。 ip.sr…

ideaSSM 工厂效能管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 工厂效能管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff…

显卡基础知识及元器件原理分析

显卡应该算是是目前最为火热的研发方向了&#xff0c;其中的明星公司当属英伟达。 当地时间8月23日&#xff0c;英伟达发布截至7月30日的2024财年第二财季财报&#xff0c;营收和利润成倍增长&#xff0c;均超市场预期。 财报显示&#xff0c;第二财季英伟达营收为135.07 亿美…

leetcode 3075

leetcode 3075 题目 例子 思路 孩子的幸福值最低也是0&#xff0c;所以选择最大的值&#xff0c;被选孩子的幸福值最高。需要使用排序算法 代码实现 class Solution { public:long long maximumHappinessSum(vector<int>& happiness, int k) {//升序sort(happine…