如何查看android 用于bitmap的内存大小

elfylin 2011-07-17 09:34:09
android手机经常报out of memory错误。

我知道每一个进程有一个用于bitmap解析的内存限制,如果解析的bitmap超过这个大小就会报错。

我们如何知道这个内存值是多少,以及使用过程中剩余多少?

我知道程序内部可能出现了bitmap内存泄露,所以我想通过这个办法来跟进一下,bitmap的内存是在什么地方被消耗了。
...全文
1899 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdpxiaoming 2011-11-04
  • 打赏
  • 举报
回复
我找到了一个方法 楼主 可以试一下

long allocNativeHeap = Debug.getNativeHeapAllocatedSize()/1024;
jdpxiaoming 2011-11-03
  • 打赏
  • 举报
回复
你们的回答 其实 跟楼主问的 完全 没关系 ,bitmapFactory 单独的 内存如何查看呢?
jdpxiaoming 2011-11-03
  • 打赏
  • 举报
回复
我终于 遇到了 和楼主一样的 问题 感谢 所有 出来分享的人
haoyizsw 2011-07-21
  • 打赏
  • 举报
回复
DDMS跟一下吧
lyltiger 2011-07-21
  • 打赏
  • 举报
回复
用 Options 解决这个问题
http://www.qianxk.com/forum.php
fontlose 2011-07-18
  • 打赏
  • 举报
回复
你可以修改这个大小的,root之后修改/system/build.prop这个文件的dalvik.vm.heapsize
fontlose 2011-07-18
  • 打赏
  • 举报
回复
这个ms关系不大,cat /proc/pid/status 可以看到VM size 单位是KB,是该进程的虚拟内存大小。

你应用不能超过16M大小 超过了就报错了
念茜 2011-07-18
  • 打赏
  • 举报
回复
totalMemory()表示调用时刻,java虚拟机现在已经从操作系统那里获取来的内存大小。在java程序运行的过程的,内存总是慢慢的从操作系统那里取的,基本上是用多少取多少。 但是java虚拟机100%的情况下是会稍微多取一点的。

嗯。android Runtime类中有freememory() 、totalmemory()、和maxmemory()等方法可以打印出信息VM内存使用量。
fontlose 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 elfylin 的回复:]

android 一个进程就虚拟机吧
VM虚拟内存大小和进程占有内存大小不一样吗
[/Quote]
VM size 是分配给虚拟机的虚拟内存空间,这个值只要比maxMemory大些就可以了
elfylin 2011-07-18
  • 打赏
  • 举报
回复
android 一个进程就虚拟机吧
VM虚拟内存大小和进程占有内存大小不一样吗
elfylin 2011-07-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fontlose 的回复:]

Runtime.getRuntime().maxMemory() ; 进程可用总的内存大小
Runtime.getRuntime().totalMemory() ; 进程已用的内存大小
totalMemory超过maxMemory时就会包报out of memory错误。

可以手动new byte[1024*1024*1];申请1M内存,再打印看看这两个值。
[/Quote]
我打印了一下maxMemory=16777216,totalMemory=3153888
但是我用ddms的进程查看器,VM size 为138852,这个和totalMemory之间是怎么一样关系?
qiying1988 2011-07-17
  • 打赏
  • 举报
回复
检查 Bitmap.recycle()的地方有没有异常。
qiying1988 2011-07-17
  • 打赏
  • 举报
回复
用DDMS的内存监测工具Heap 试试。
fontlose 2011-07-17
  • 打赏
  • 举报
回复
Runtime.getRuntime().maxMemory() ; 进程可用总的内存大小
Runtime.getRuntime().totalMemory() ; 进程已用的内存大小
totalMemory超过maxMemory时就会包报out of memory错误。

可以手动new byte[1024*1024*1];申请1M内存,再打印看看这两个值。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧