图形测试分析毫无头绪?HarmonyOS图形栈测试技术帮你解决

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了 当你在Coding Block中添加自定义字段的时候 阅读详情

作者:huangran,图形图像技术专家

应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿、白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好……


我们发现,如今测试人员的需求已经不只是停留在应用层面的测试数据了,而是需要数据背后的根因。但业界的图形栈测试,绝大部分都只提供应用层面的数据,有一部分可以深入系统层分析,但仍无法触及硬件这一层的测试分析。


HarmonyOS图形栈测试技术,不仅可以深入系统层分析,帮助开发测试者得到数据背后的根因,还能触达硬件层的测试分析。那它是如何做到的呢?让我们一起揭秘HarmonyOS图形栈测试技术。

目录

一、HarmonyOS 图形栈全貌

二、2D图形栈应用

三、3D图形栈应用

四、图形栈工具

五、结语


一、HarmonyOS 图形栈全貌


众所周知,图形是操作系统里面非常核心的模块,和内核、编译器等模块一起作为操作系统的底层基座,不仅如此,它还是体现竞争力的关键模块。但因为图形栈非常复杂,所以需要构筑一套完整的测试技术才可以保证其质量和竞争力。

图1 图形栈整体架构


如图1所示,左边部分是HarmonyOS图形栈的全貌,其中最上面一层是渲染前端,包括2D类应用、3D类应用和重负载的游戏视频类应用,这一层与右边测试部分的应用层对应,包括体验KPI和负载模型能力。


中间一层则是我们图形栈操作系统的核心能力,如组件、JS 引擎、ArkUI的三棵树(Component树,Element树和Render树)、自研2D引擎、自研3D引擎、动效、手势、布局等。这一层与右边测试部分的系统层对应,包括图形栈关键耗时函数解析和图形栈优化方案可见的能力。


最下面一层则是HarmonyOS 1+8+N设备需要横跨的两个部分:操作系统和硬件设备,需要对其进行兼容支持,这一层与右边测试部分的硬件层对应,包括跨系统对比测试能力、跨设备测试能力和硬件SOC分析能力。


我们图形栈的测试能力不只是停留在应用层的体验KPI,它可以将体验KPI指标进一步分解成系统级别的耗时函数、以及硬件级别的SOC分析能力,并最终提供优化方案(后文将举例说明)。


了解完整体架构后,我们再进一从2D图形栈应用和3D图形栈应用两个角度去了解图形栈测试技术:

二、2D图形栈应用


图2 是HarmonyOS ArkUI开发框架,对应右边的三层结构,最底层是接口层测试,中间层是组件层测试,最上层是应用层测试。接下来我们会给大家重点介绍负载模型、系统分析案例和应用分析案例。

图2 ArkUI开发框架

对于一个新的开发框架,在没有海量生态的应用进来之前我们是如何验证这个平台的测试能力的?


我们最初设想的是构建足够多的场景来覆盖和验证整个ArkUI框架,比如三棵树(Element树、Component树和Render树)、布局/动效、手势、2D渲染引擎。但因为不存在穷举的方式去覆盖所有业务,所以我们提出了负载模型的概念。


2D负载模型到底是什么?


我们选取了Top200的应用,对应用进行基于场景的分类,并提取特征, 然后形成了8大类常见用户场景(图3),如购物类、图库类、视频类等,同时也抽象出6大类负载,比如资源加载、图层叠加、负载布局 。

图3 负载场景及类型


同时我们还结合了Beta与商用的性能问题单和用户体验反馈,来逆向帮助我们补充可能遗漏的负载,比如系统I/O负载压力。这样构建的负载模型有两个作用,不仅可以测试HarmonyOS图形栈架构,还可以为作为HarmonyOS应用样例,供开发者参考。


由于设备硬件能力的差异性,负载模型实际上是参数可调节的。比如对于IP Camera这类没有GPU的设备,我们无法给它加很强的负载,它的分辨率较小、物理尺寸也较小,如果用手机的分辨率给它渲染这是没有意义的。所以我们将负载模型构建成一个参数可调模型,这样它就会基于测试者的硬件设备来选择不同的资源做测试,非常灵活便捷。


如前文所说,我们的图形栈测试能力不只是停留在应用层,而是要进入到系统层和硬件层。接下来举两个例子让大家了解一下我们在系统和硬件层面上如何做分析。


案例一:系统分析案例


我们先举一个跟硬件相关的例子,比如“多个应用连续页面切换”的场景,这时候可能产生多应用切换的时延、丢帧等问题。

如图4所示,假如我们定义丢帧率的KPI为0.5%,但是经过测试达到了3%,丢帧指标超标,那么我们将进一步对硬件的CPU占用率和I/O压力进行数据统计。拿到统计数据之后,平台还会告诉你具体是哪一个进程产生了CPU和I/O的压力,并给出优化建议。 

图4 系统分析和优化建议


案例二:应用分析案例


接下来我们举个应用内的性能分析案例,比如图库应用的图片删除场景,也可能产生丢帧和时延问题。

如图5所示,假设我们定义时延指标为100ms,经过测试发现时延达到1048ms,时延超标,然后我们将ArkUI图形栈函数展开,得到耗时占比,发现在系统层面上FlushBuild()和FlushLayout()耗时较长,然后平台会基于这些数据进行分析,找到可能原因,并给出优化建议,以帮助开发者明确下一步优化方向和动作。

图5 应用分析和优化建议

三、3D图形栈应用


图6是3D图形栈的整体架构,它包括了两部分,一部分是右侧的自研3D引擎,大家可以基于3D自研引擎进行3D应用的开发,比如3D动效、AR应用、3D壁纸等。

图6左边的部分是SDK,我们提供了一系列API,主要是针对大型的3D游戏,因为大型的3D游戏对于系统和SOC的压力较大,这些API可以帮助大型游戏更好地使用系统和硬件,比如GTX、System Cache、画质增强等SDK接口。

接下来我们会为大家重点介绍3D应用分析基础、特性拆分和分析方法和3D壁纸调优案例。

图6 “3D图形栈”


1. 3D应用分析基础


3D应用对于性能功耗的压力会更大,所以更需要底层SOC以及系统的分析能力。其实无论是3D自研引擎,还是SDK,都可以通过将负载进行特性拆分,然后进行细粒度分析。

如图7所示,场景A关键帧就是由渲染特性HDR、Bloom等粒子特效组成,再加上CPU负载就形成一个关键帧,这些关键帧连续起来就是3D场景。通过这些特性进一步调用到硬件逻辑的相关特性,比如ALU、Texture压力,最终通过DDK调用到硬件层执行。

图7 “3D应用分析基础”


有了以上分析基础后,我们再来看一下特性拆分和分析方法。


2. 特性拆分和分析方法


如图8所示,这帧渲染画面是由Particle、Shadow map、Point light、Bloom等特效组成,如果GPU的负载较重,性能出现瓶颈,如何找到问题的根因呢?我们把这一帧的GLES的指令截取到,并将每一个单特性进行分拆,然后看每一个单特性(如Particle)对硬件造成的压力。特性拆完后再结合GPU counters来帮助我们定位根因。

图8 特性拆分


如何使用GPU counters来定位问题呢?如图9所示,场景C提示fragment cycles比较重,所以要求开发者减少像素渲染。而对于场景A,不仅Fragment cycles很重,而memory R/W以及Vertex cycles都比较重,那么就要针对这几个瓶颈进行优化。
 

图9 GPU Counters


3D壁纸调优案例


我们举一个3D壁纸调优的案例给大家展示如何找到性能瓶颈。

图10 “3D壁纸调优”


如图10所示,用Blender制作3D壁纸模型,再用我们的自研引擎增加渲染效果,最终形成一个有光照、反射的画面。


我们将3D壁纸画面进行特性剥离,再看特性剥离后每一个单特性对硬件造成的压力,数据如表1所示。发现表面细分(顶点50W)+点光(1术)+反射面的归一化电流达到了1921.33,性能出现较大恶化,如果使用一般的测试工具,就只能到这一步了。

但我们的工具可以帮助大家进一步分析。我们结合表2的Counters来帮助大家定位问题。

在表2的第一、二组数据可以看到,将反射面减少,会发现“shadercycles”从1910降低到1190,这提示开发者“shader”写的过于复杂了。


我们进一步将顶点数从50W减少到5W,会发现“VertexComputeCycles”从459降低到93.2,说明“VertexComputeCycle”就是一个需要优化的瓶颈。
通过这样的分析方式,就可以逐步定位到问题,并找到优化的方向,从而达成性能功耗和画质的平衡。 

四、图形栈工具


我们前文介绍的2D和3D图形应用的分析优化的能力都集成于HarmonyOS图形栈的测试平台——DevEco Testing。

图11 DevEco Testing-图形栈测试分析能力


如图11所示,DevEco Testing是一个“三端+自动化”的结构,其中三端包括设备端、PC端和云端,而自动化就是可以使2D或3D应用的做到自动化测试,同时还具备以下测试能力:

  • 性能、功耗、热的采集和分析
  • 游戏测试自动化能力
  • 大数据统计和分析
  • 增强型服务:独立APK、帧采集回放、画质检测、多路测试等


在以上测试能力中,有3个增强型服务测试能力是我们的特色:


(1)独立的APK测试能力


如图12所示,该工具支持脱离PC的方式进行测试,可直接在被测设备上部署工具,并且在进行设备应用操作时,可以实时展示数据。比如出现帧率的巨大下降时,可以直接在屏幕上展示数据并提供测试的报告,非常直观和便捷。

图12灵活的独立APK测试


(2)分布式渲染多路测试


该工具适用于HarmonyOS分布式多设备场景,可以绑定多个设备(如手机+笔记本),并且该工具平台可以把这些设备的测试报告进行绑定,形成完整的测试报告。

(3)支持单帧或多帧的采集和回放功能


如图13所示,该工具可以采集一帧或多帧API Trace结果,然后进行回放,再结合GPU Counters进行定位(如前文壁纸调优案例所述)。

图13 单帧或多帧采集回放

五、结语


HarmonyOS图形栈是整个HarmonyOS操作系统的基座,包括ArkUI 2D和3D部分。图形栈的测试是一个分层接口,包括应用层、系统层以及硬件层,可以帮助开发测试者从用户体验指标到深入了解系统和硬件发生了什么。

这些测试服务能力集成DevEco Testing下的图形图像测试工具,欢迎大家下载使用。

【Unity工具篇】| 使用YooAsset接入自己的游戏项目,实现完整热更新流程 前面文章介绍了YooAsset的原理和接入官方示例文档的文章介绍,本文使用YooAsset接入自己的游戏项目做示例。 【Unity工具篇】| 资源管理插件YooAsset,原理及相关配置 【Unity工具篇】| 游戏完整资源热更新流程,YooAsset官方示例项目 具体接入方法有很多种,本文会参照官方示例 Space Shooter 太空战机DEMO 用到的方式接入自己的游戏项目。 阅读详情

相关推荐

深度学习之Pytorch---本人踩过的坑(报错总结)第十篇

深度学习之Pytorch安装时遇到的问题—本人踩过的坑(报错总结) 报错一:pip install torchvision 出现“由于目标计算机积极拒绝,无法连接”的问题 解决方案:找到自己浏览器的工具或选项,我的是火狐,具体解决方案如下图 然后找到桌面左下角,点击搜索internet,然后点击internet选项 最后回到Anaconda Prompt命令行输入pip install...

qq_41570307的博客 1914

OpenHarmony 3.1 Beta版本关键特性解析——OpenHarmony图形框架

(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 李煜 华为技术有限公司 崔坤 华为技术有限公司 众所周知,动画是系统和应用与用户交互的重要环节。动画效果的好坏会直接影响用户的体验。动画效果依赖图形系统,华为作为 OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源项目贡献者,自主研发了一套以统一渲染为基础、高性能动效引擎为驱动的图形系统——OpenHarmony 图形栈。 一、OpenHarmony 图形栈介绍

OpenHarmony_dev的博客 3770

Star CCM+ 202206 (17.04) 详细安装步骤

StarCCM+ 17.04 安装包和详细安装步骤

薛定谔的alpha狗 3万+

【杂谈】-Linux中的GUI与图形栈

在本文中,我们将探讨基于Linux操作系统中使用的图形栈。我们将了解使图形应用程序成为可能的不同技术,以及它们是如何相互交互的。我们将从基础开始,逐步引导至高级的GUI工具包。

视觉与物联智能 2303

本地部署开源视频会议解决方案 Jitsi Meet 并实现外网访问

Jitsi Meet 是一款基于 WebRTC 技术的开源视频会议解决方案,它允许用户通过互联网进行高质量的视频通话、语音通话和文本聊天,非常适合用于在线教育、远程办公、团队协作等场景。本文将详细介绍如何利用 Docker 在本地部署 Jitsi Meet 并结合路由侠实现外网访问本地部署的 Jitsi Meet。

lyxnwct的博客 1946

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 348

鉴源论坛 · 观模丨面向界面的图形化测试技术

面向界面的图形化测试是一种常用的软件测试方法,旨在验证用户界面是否符合业务规范和用户需求,以及验证应用程序的功能是否正确响应用户操作,以保证应用程序的质量和稳定性。

TICPSH的博客 731

【ATC/DTC方法第四期】GOT09-dT-tao 昼夜温度周期模型方法介绍(含Python代码实现)

GOT09-dT-tao 模型是一种经过简化和参数固定的 昼夜温度周期模型(Diurnal Temperature Cycle, DTC)。它从 GOT09 模型(Göttsche and Olesen, 2009)衍生而来,但更加轻量化,更适合在数据不足或参数估计困难的情境下使用。

WW、forever的博客 147

2024年Java最新Metal新特性:大幅度提升iOS端性能,java资深工程师面试题

既已说到spring cloud alibaba,那对于整个微服务架构,如果想要进一步地向上提升自己,到底应该掌握哪些核心技能呢?就个人而言,对于整个微服务架构,像RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh等这些都是最最核心的知识,架构师必经之路!下图,是自绘的微服务架构路线体系大纲,如果有还不知道自己该掌握些啥技术的朋友,可根据小编手绘的大纲进行一个参考。

2401_84584522的博客 1005

Labview邪修01:贪吃蛇小游戏

摘要:博主使用LabVIEW 2020(32位)复刻了经典贪吃蛇游戏。程序具备随机生成蛇(初始长度3)和食物、三档速度调节、键盘方向控制等功能,碰撞边界或自身即游戏结束。实现过程包括:1)界面设计,使用二维颜色盒数组构建游戏区,添加速度枚举控件和功能按钮;2)程序架构,采用模块化设计包含Main.vi、Start.vi等6个核心VI,分别处理初始化、位置计算、碰撞检测等逻辑;3)事件驱动机制,通过开始/结束事件、按键响应和超时循环实现游戏流程控制。运行时可实时显示分数,完整还原了贪吃蛇的核心玩法。

weixin_38637405的博客 972

AI应用质量工程实践:从评估到监控的完整体系构建

在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju

weixin_28728279的博客 294

可视化测试手段:让测试结果一目了然

通过鼠标悬停在图表元素上,可显示详细数据信息,如在网络测试可视化界面,鼠标悬停在代表不同节点的图标上,显示该节点的带宽、延迟等具体参数。可视化测试依赖丰富的图形绘制技术。如服务器硬件测试,用仪表盘形式实时显示各硬件组件温度,温度超出正常范围时颜色变化提醒,结合3D模型可视化硬件内部结构,展示故障位置与影响范围,方便维修人员快速定位问题。可视化测试手段凭借直观呈现测试结果、增强数据理解与分析能力、实时反馈测试动态等优势,显著提升测试效率与质量,在各测试领域发挥重要作用,成为现代测试不可或缺的工具。

chendong52329的博客 1066

学Simulink--环境感知场景实例:基于Simulink的毫米波雷达多目标跟踪仿真

本文介绍了基于Simulink的毫米波雷达多目标跟踪仿真系统,重点分析了FMCW雷达信号处理流程(Range/Doppler FFT、CFAR检测)和多目标跟踪算法(JPDA数据关联、EKF状态估计)。通过构建城市道路交叉场景,验证了系统在跟踪精度(位置误差<0.2m)、实时性(单帧处理24ms)和鲁棒性(ID切换率<5%)方面的性能优势,并提出了UKF滤波、多传感器融合等优化方向。该仿真系统为自动驾驶环境感知提供了实用的毫米波雷达跟踪解决方案。

amy_mhd的博客 92

图形测试分析毫无头绪HarmonyOS图形栈测试技术帮你解决

应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿、白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好…… 我们发现,如今测试人员的需求已经不只是停留在应用层面的测试数据了,而是需要数据背后的根因。但业界的图形栈测试,绝大部分都只提供应用层面的数据,有一部分可以深入系统层分析,但仍无法触及硬件这一层的测试分析。 HarmonyOS图形栈测试技术,不仅可以深入系统层分析,帮助开发测试者得到数据背后的根因,还能触达硬件层的测试分析。那它是如何做到的呢?让我们一起揭秘HarmonyOS图形栈测试

ligang9100的博客 484

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android/Linux 子系统Graphics图形栈入门普法介绍

GTK+和QT是GUI toolkits,属于软件库,类似c语言的stdio.h,win32,java里import的各种外部包,可以任开发者调用(应该是C/C++使用的库)去创建一些图形界面里面的控件,例如button,下拉菜单,窗口等。而人机交互的本质,是人脑通过人的输出设备(动作、声音等),控制终端的输入设备,终端经过一系列的处理后,经由终端的输出设备将结果输出,人脑再通过人的输入设备接收电脑的输出,最终实现“人脑终端”之间的人机交互。这是一个非常耗时的操作,GPU 的引入就是为了加快栅格化。

IT先森 7263

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[机翻]Linux图形堆栈简介[翻译]

2014 年 7 月 29 日 这篇文章试图对 Linux 图形堆栈做一个简短的介绍,因此,它具有介绍性。我将专注于提供足够的背景信息,以了解 Mesa 和 3D 驱动程序通常在堆栈中扮演的角色,并将其留给后续帖子,以更深入地了解 Mesa 的总体内容和英特尔 DRI 驱动程序的具体内容。 一点历史 为了了解当前图形堆栈的一些特殊性,了解它多年来如何适应新挑战非常重要。 你看,现在的事情比以前复杂得多,但在早期,只有一个软件可以直接访问图形硬件:X 服务器。这种方法使图形堆栈更简单,因为它不...

maze的专栏 1153

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

新功能|Mail GPU Counter模块新增GPU图元处理和GPU Shader Cycles

GPU检测分析又添Buff

UWA—简单优化,优化简单! 938

Pycharm图形化性能测试工具Profile

在部署模型的时候遇到一个需要加速的问题,为了搞清楚模型调用过程中最耗时的操作以定位优化,同事告诉了我一个调优的工具,叫profile。 主要参考:Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph 我这里只列举自己可能会用到的几个及相关注意事项 1. timeit库 python内置库,不需要额外安装 >>> import timeit >&gt

啷个哩个啷 2万+

图形化接口自动化测试_图形测试,自动化测试的最后一行

图形化接口自动化测试 有 几十个平台, 您可以部署与统一。 对于Unity的开发人员来说,要保持所有开发人员的视觉完整性可能很困难。 快速浏览一下我们如何确保图形功能不会意外损坏。 (There are dozens ofplatforms you can deploy to with Unity. It can be difficult for us developers at Unity t...

culiao6493的博客 644

陀螺仪测试图像分析_网站速度测试简介:一种图像分析工具

陀螺仪测试图像分析This article was sponsored byCloudinary. Thank you for supporting the partners who make SitePoint possible. 本文由Cloudinary赞助。 感谢您支持使SitePoint成为可能的合作伙伴。 Because images dominate page weight...

culi4814的博客 631

图像测试环境软件,Digimizer(图像测量分析软件)

使用Digimizer可以轻松测量图像的各项数据,该软件是一个十分专业的图像测量分析工具,支持多种图片格式,包括PNG、JPG、EMF、GIF等,您可以自由添加进软件进行分析和处理,测量列表显示当前图像中的测量,也可以包括多个图像的测量,统计信息窗口还会显示测量的统计信息。软件特色1. 测量分析能够对图片进行精准测量,分析更彻底2. 自动识别拥有对图片内容对象进行自动识别的功能3. 多种形式支持X...

weixin_35892206的博客 5003

目标检测最全综述

前言 图片分类任务我们已经熟悉了,就是算法对其中的对象进行分类。而今天我们要了解构建神经网络的另一个问题,即目标检测问题。这意味着,我们不仅要用算法判断图片中是不是一辆汽车, 还要在图片中标记出它的位置, 用边框或红色方框把汽车圈起来, 这就是目标检测问题。 其中“定位”的意思是判断汽车在图片中的具体位置。 近几年来,目标检测算法取得了很大的突破。比较流行的算法可以分为两类, 一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN等),它

8051

你的游戏项目有这些问题吗?

UWA对于GPU性能优化的探索

UWA—简单优化,优化简单! 412

特效的GPU压力该如何解决?

从顶点压力、片元压力、Shader复杂度定位特效的GPU性能压力

UWA—简单优化,优化简单! 876

Linux图形栈-从X到Wayland

Ars思考着Linux图形栈的演变,从最初的... 作者:EvanJenkins 2011年5月22日,下午12:30中央标准时间 原文名称:The Linux graphics stack from X to Wayland 1980年代初,麻省理工学院计算机科学系(以下简称MIT)的BobScheifler着手为新的窗口系统制定规则。他决定取名为X,因为此窗口系统是基于W窗口系统

道路与梦想 4839

Android 系统图形栈(一): OpenGL ES 和 EGL 介绍

https://woshijpf.github.io/android/2017/09/04/Android%E7%B3%BB%E7%BB%9F%E5%9B%BE%E5%BD%A2%E6%A0%88OpenGLES%E5%92%8CEGL%E4%BB%8B%E7%BB%8D.html OpenGL ES 什么是 OpenGL ES? OpenGL ES(OpenGL for Embed...

u010029439的博客 1782
上一篇: 一文带你看懂分布式软总线在家庭场景的应用
下一篇: HarmonyOS新能力让数据多端协同更便捷,数据跨端迁移更高效
「已注销」
博客等级 码龄5年 1045粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值