回答
我懷疑android.os.StatFs是你在找什麼:
http://developer.android.com/reference/android/os/StatFs.html
我敢打賭,這個數據與視頻RAM大小無關。 – 2010-07-01 02:16:08
讓我們做用Nexus One的一些計算:
屏幕分辨率480x800的是。所以最低要求的顯存大小爲:
400 * 800 * 4 bytes = 1536000 bytes
假設駕駛員可以(而且通常應該)使用幾個緩衝區,我們也應該期望像值:
1536000 * 2 bytes = 3072000 bytes
1536000 * 3 bytes = 4608000 bytes
etc...
如果值不是1536000的倍數(或一般的W x H x 4),那將會很奇怪。
在Android內部某些搜索後,我發現這個documentation:
... Android可讓駕駛者的兩個要求:可映射內存的線性地址空間,它可以編寫直接......通過調用open在/ dev/FB0 ...
訪問的驅動程序所以,我想,採取/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
它看起來像一個正確的價值。而且我們也可以說驅動使用三個屏幕緩衝區。
所以,作爲一個結論,你可以使用亞行檢測顯存大小,但不能在適當的文件訪問限制運行時使用這種方法從你的Android應用程序。
很好的調查,謝謝,但不是我在找什麼。可能我沒有完全清楚。我想知道的是OpenGL服務器內存的大小,我們在其中存儲紋理,頂點緩衝區等。無論如何,如果這個問題沒有得到答案,賞金是你的。 – Thomas 2011-01-26 15:07:07
Android/OpenGL API不提供從給定設備讀取VRAM大小的明確方法。
可憐的人解決:
您可以嘗試推斷的VRAM大小經驗性的方法添加1MB的質感,直到你從gl.glGetError()
得到一個內存不足的錯誤。
您通常在移動設備上沒有專用的「VRAM」。至少你沒有使用PowerVR架構(通過MBX和SGX內核完全支配市場)。
也就是說,OpenGL驅動程序分配正常的內存,直到用完爲止,分配得越多,爲應用程序留下的內存就越少。
從你的 「dmesg的」 輸出u可以讀出的VRAM,所以我的平板電腦:
> [ 0.000000] Machine: TDM3730 [ 0.000000] Reserving 12582912
> bytes SDRAM for VRAM
>
> 7>[ 3.929962] VRAM: checking region 9f400000 3072
> <4>[ 3.929992] Failed. Allocating 4194304 bytes for fb 0
> <7>[ 3.935333] VRAM: alloc mem type 0 size 4194304 paddr dec2bd4c
> <7>[ 3.935485] VRAM: checking region 9f400000 3072
> <7>[ 3.935485] VRAM: found 9f400000, end a0000000
> <6>[ 3.936584] android_usb gadget: high speed config #1: android
> <4>[ 3.960113] allocating 4194304 bytes for fb 1
或細節的:
是簡單算了算多少MB RAM從可用到實際容量的內存,我的聯想a369i的例子有512內存模塊,但在設置應用程序只顯示471 Mb可用,所以剩下的41Mb留給GPU,所以結論是我的a369i有41Mb vram
此方法基於共享圖形內存(wiki)
- 1. 如何使用javascript測量網站上的數據消耗
- 2. 如何消耗的Android
- 3. 如何在Android上測量我的應用程序的功耗
- 4. 測量Android應用程序的電池消耗量
- 5. 如何測量進程的CPU消耗量?
- 6. 如何測量堆棧消耗的內存量?
- 7. 如何測量STL容器的總內存消耗量?
- 8. 消耗的Android
- 9. Android應用功耗測量
- 10. 如何測量ARM功耗?
- 11. 測量進程消耗的CPU時鐘
- 12. 如何從VRAM
- 13. 便宜的方法來測量Android中的電池消耗
- 14. 如何測量我的算法消耗的功率?
- 15. 如何測量apache2和nginx的性能(消耗的內存)?
- 16. 跟蹤android app的電池消耗量?
- 17. 如何測量DXL腳本的內存消耗?
- 18. 測量CPU /存儲器消耗
- 19. 如何測量Nexus 6p的功耗(mWh)?
- 20. 如何測量arduino電路的功耗
- 21. Android - CPU使用率和電量消耗
- 22. Android如何測量插入時的應用程序功耗
- 23. Android電池消耗
- 24. Android消耗WebService ksoap2
- 25. 如何在ios下測量我的應用程序的電池消耗量?
- 26. 如何使用android webview消耗rest api
- 27. 如何製作Android產品消耗品
- 28. 如何消耗ionic2
- 29. OS X上的免費VRam
- 30. 如何消耗的NSTableView的
我想知道這一點。如果無法從設備查詢,則通用設備上的視頻RAM數量列表也可以實現。 – Thomas 2011-01-22 11:02:27
要說清楚,我的意思是可用於OpenGL紋理,緩衝區等的RAM數量。也許這不是「視頻RAM」本身,而是「OpenGL服務器內存」? – Thomas 2011-01-26 15:07:59