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

Android SurfaceFlinger——GraphicBuffer获取内存信息(三十一)

        上一篇文章介绍了 GraphicBuffer 初始化的 initWithSize() 函数中的申请内存流程,这里我们看一下另一个比较重要的函数,GraphicBufferMapper. getTransportSize 获取内存信息。该函数通常在需要了解缓冲区的实际内存占用情况时调用,例如在调试内存使用情况或优化性能时。

一、函数解析

        GraphicBufferMapper 的 getTransportSize 方法是用于获取一个 GraphicBuffer 实例的实际传输大小。这是因为图形缓冲区的实际大小可能由于对齐、填充等因素而大于其逻辑大小(即 width * height * 像素大小)。getTransportSize 方法返回的是实际用于传输的字节数,这对于理解缓冲区的内存占用以及在进行 DMA(直接内存访问)操作时特别有用。 

1、GraphicBufferMapper

源码位置:/frameworks/native/libs/ui/GraphicBufferMapper.cpp

void GraphicBufferMapper::getTransportSize(buffer_handle_t handle, uint32_t* outTransportNumFds, uint32_t* outTransportNumInts)
{mMapper->getTransportSize(handle, outTransportNumFds, outTransportNumInts);
}

源码位置:/frameworks/native/libs/ui/include/ui/GraphicBufferMapper.h

std::unique_ptr<const GrallocMapper> mMapper

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【H.264】H.264详解(二)—— H264视频码流解析示例源码
  • 使用协程实现调用接口 验证抽奖概率
  • vue-快速入门
  • 周末两天我搭建了一个智能问答ai工具网站
  • vue3——利用自定义指令实现下拉框分页懒加载
  • 前端模块化CommonJS、AMD、CMD、ES6
  • MYSQL(2) 高级查询
  • sql注入 mysql 执行命令 sql注入以及解决的办法
  • C语言 #具有展开功能的排雷游戏
  • WHAT - 不同 HTTP Methods 使用场景、使用方法和可能遇到的问题
  • 力扣1089复写0
  • JVM 性能分析—— 一文带你读懂 G1 垃圾收集器收集流程
  • 鸿蒙应用框架开发【OpenGL三棱椎】 NDK
  • postgres数据库连接超时问题处理
  • ArcGIS Pro SDK (九)几何 17 几何引擎函数
  • php的引用
  • Computed property XXX was assigned to but it has no setter
  • Intervention/image 图片处理扩展包的安装和使用
  • React+TypeScript入门
  • Redis的resp协议
  • SpringBoot几种定时任务的实现方式
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 机器学习中为什么要做归一化normalization
  • 判断客户端类型,Android,iOS,PC
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 新手搭建网站的主要流程
  • NLPIR智能语义技术让大数据挖掘更简单
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (转)3D模板阴影原理
  • (转载)Linux 多线程条件变量同步
  • (转载)利用webkit抓取动态网页和链接
  • **CI中自动类加载的用法总结
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • [Android Pro] AndroidX重构和映射
  • [APIO2012] 派遣 dispatching
  • [AutoSar]BSW_Com02 PDU详解
  • [CISCN 2019华东南]Web11
  • [CTF]php is_numeric绕过
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意
  • [HackMyVM]靶场 Quick3
  • [iOS]随机生成UUID通用唯一识别码
  • [js]- 两个对象的合并(Object.assign)
  • [JS设计模式]Prototype Pattern