如何测量 Android 上的 VRAM 消耗?

2024-01-06

我想获取Android设备VRAM大小。

有没有从程序中获取的方法?


让我们使用 Nexus One 进行一些计算:

屏幕分辨率为 480x800。因此所需的最小视频内存大小为:
400 * 800 * 4 bytes = 1536000 bytes

假设驱动程序可能(并且通常应该)使用多个缓冲区,我们还应该期望以下值:

1536000 * 2 bytes = 3072000 bytes
1536000 * 3 bytes = 4608000 bytes
etc...

如果值不是 1536000(或者通常是宽 x 高 x 4)的倍数,那就很奇怪了。


在对 Android 内部进行一些搜索后,我发现了这个文档 http://www.netmite.com/android/mydroid/development/pdk/docs/display_drivers.html :

...Android 对驱动程序提出了两个要求:可直接写入的可映射内存的线性地址空间...通过在 /dev/fb0 上调用 open 来访问驱动程序...

所以我尝试并采取尺寸/dev/graphics/fb0文件(在我的设备上没有/dev/fb0).

但直接的方法行不通:

 File file = new File("/dev/graphics/fb0");
 file.length(); // ==0, doesn't work, no read access

使用下一个技巧你可以得到实际大小fb0:
>adb pull /dev/graphics/fb0
1659 KB/s (4608000 bytes in 2.712s)

视频内存约为 4mb (Nexus One)。让我们检查一下这是否是 Nexus 屏幕尺寸的倍数:

4608000/1536000 = 3

它看起来像是一个正确的值。我们也可以说驱动程序使用three屏幕缓冲区。


因此,作为结论,您可以使用 adb 检测视频内存大小,但由于文件访问限制,您无法在运行时从 Android 应用程序使用此方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何测量 Android 上的 VRAM 消耗? 的相关文章

随机推荐

  • 自定义数据可视化工具中的可视化表达

    当我选择内置可视化工具之一时 我可以看到原始表达式被可视化 如何从我自己的自定义可视化工具中获取此信息 我已经浏览过API参考 https learn microsoft com en us visualstudio debugger vi
  • Google Visualization Charts API 示例已损坏,如何修复?

    请参阅此页面 例如 https developers google com chart interactive docs quick start https developers google com chart interactive d
  • 将 Visual Studio 更新到 17.4.0 Preview 2.1 后出现工作负载错误

    今天我将 Visual Studio 更新到 17 4 0 Preview 2 1 Microsoft Visual Studio Community 2022 64 位 预览版 版本 17 4 0 预览版 2 1 之后 我无法部署 Bla
  • 如何对数据仓库中的流程和状态历史进行建模?

    假设我们有D PROCESS D WORKER and D STATUS作为尺寸和事实F EVENT将流程 内容 与工作人员 负责人 和 当前 状态联系起来 进程状态随时间而变化 我们应该存储在F EVENT每个进程 状态 工作人员一行 或
  • 通过 .net 中的 web.config 利用浏览器缓存?

    有些站点位于共享主机 Windows 2003 Server 上 因此我无法访问服务器配置 我到处都读到了有关利用浏览器缓存的内容 特别是静态文件 jpg css js 等 但是 在我的情况下如何做到这一点 主机已安装 NET web co
  • Accepts_nested_attributes_for 和nested_form 插件

    我在 form html haml 部分中有以下代码 它用于新建和编辑操作 仅供参考 我使用 Ryan Bates 的插件嵌套形式 http github com ryanb nested form fields f fields for
  • 为什么“join”不是“Monad”类的一部分[重复]

    这个问题在这里已经有答案了 众所周知的事实是 gt gt 可以使用来实现fmap and join while join可以使用来实现 gt gt 我们有什么理由不定义Monad与 一起上课join包含并使用以下默认定义 join x x
  • 图表js可以处理多少数据

    对于我的应用程序 我正在发出数千个数据点的获取请求 当我使用图表js显示数据时 渲染时间很长 而且我遇到了滞后 我还注意到每个数据点的 x 轴标签没有正确显示 因此必须省略它们 我喜欢图表的时尚设计和用户界面 但无法让它很好地适合我的用例
  • 关闭谷歌地图 API v3 中所有打开的信息窗口

    正如标题所述 在给定的事件中 对我来说 这恰好是在打开一个新的事件时 google maps InfoWindow我希望能够关闭任何其他当前打开的信息窗口 现在 我可以一次打开很多个 但我只想一次只打开一个 我正在动态创建信息窗口 即我不提
  • 返回 f 字符串的 For 循环函数

    我是 python 新手 尝试编写一个函数 该函数接受字典列表并返回一个新的字符串列表 其中每个字典中的名字和姓氏键连接在一起 names first John last Smith first Jessie last Snow def n
  • 无法在react.js中使用本地图像

    基本上我无法使用本地图像 我真的不确定为什么 我已经安装了 url loader 和 file loader 并尝试请求该文件 HeaderNavigation js 我尝试使用的图像位于同一目录中 并被引用为品牌图像 Created by
  • 通过 Visual Studio 代码 launch.json 运行 foreman start

    目前 我正在通过输入运行我的解决方案foreman start进入命令行 工作正常 我正在尝试使用 Visual Studio 代码调试我的代码 为此 我创建了一个 launch json 文件 version 0 2 0 configur
  • 在Python中以特定模式打印字母

    我有以下字符串并将其拆分 gt gt gt st 2g k 3p gt gt gt l filter None st split gt gt gt print l 2g k 3p 现在我想打印 g 字母两次 k 字母一次 p 字母三次 gg
  • 双面文件问题

    我正在程序中读取 system32 文件夹中的一些文件 其中一个文件 C Windows System32 gdi32 dll 表现出一种非常奇怪的行为 当我从程序中读取它时 它显示大小为 310 784 字节 当我从资源管理器查看它的大小
  • 如何从控制器调用 EditorFor

    我有地点列表 public class Location public string LocationName get set public string Address get set 我为此类创建了编辑器模板 div span Html
  • 从视频文件创建缩略图返回空位图

    我发送启动摄像机的意图 PackageManager pm getPackageManager if pm hasSystemFeature PackageManager FEATURE CAMERA Intent video new In
  • 在三层控制台应用程序中使用常量或全局变量

    我有一个像这样的 3 层应用程序设置 带有控制台表示层 在我的业务逻辑中 我有一个类 我在其中声明了许多固定的不同变量 即值不会改变 这些变量的值取自应用程序设置 现在我发现的问题是我的类调用不同的方法 其中这些变量通过方法签名传递 这是好
  • 如何合并单个提交?

    有时我同时与多个分支机构合作 假设我有名为 master release 1 1 和 Experimental 的分支 我创建一个新文件或在实验中进行更改 并且我希望将一项更改应用于其他分支 我可以在 git 中执行此操作吗 如果我只是将提
  • “已连接”UDP 套接字收到 ICMP 端口不可达

    基于 UDP 是无连接协议的前提 我假设主机是否启动或关闭都无关紧要 然而 现在我正在进行测试 我发现当我 连接 我的 UDP 客户端套接字时 write到该套接字会返回错误 因为服务器已发回 ICMP 端口不可达错误 连接 UDP端口的目
  • 如何测量 Android 上的 VRAM 消耗?

    我想获取Android设备VRAM大小 有没有从程序中获取的方法 让我们使用 Nexus One 进行一些计算 屏幕分辨率为 480x800 因此所需的最小视频内存大小为 400 800 4 bytes 1536000 bytes 假设驱动