#19 楼 @felixtest 上面已经更新了!
#28 楼 @lihuazhang 要算在里面的哦 !
android 程序内存被分为 2 部分:
native 和 dalvik,dalvik 就是我们平常说的 java 堆,我们创建的对象是在这里面分配的,而 bitmap 是直接在 native 上分配的,对于内存的限制是 native+dalvik 不能超过最大限制。
#26 楼 @lihuazhang 卧槽 我还没看到你发了问题!
现在回答你:
在 Android Native Code 中使用 malloc 分配出来的内存,就是 Native Heap. 这部分内存不受 Java Object Heap 限制,可以自由使用,但是会受到系统限制。
dalvik 是指 dalvik 所使用的内存
native:是被 native 堆使用的内存。应该指使用 C\C++ 在堆上分配的内存。
这里的 dalvik 使用的内存 +native 使用的内存 大于 程序限制最大的内存 就会发生 OOM
#16 楼 @laiyuncong8404 已更新了,看上面!
#11 楼 @x746560359 你自己用命令跑一下试试
#19 楼 @felixtest 哦了~!
#2 楼 @lihuazhang 好的
#2 楼 @lihuazhang 只是一个工具分享,没啥特别的!
#8 楼 @cpfeng0124 adb shell dumpsys cpuinfo 可以看到你的应用 Cpu 占比,和内核 Cpu 占比 前面是的是 total
#6 楼 @felixtest
1,
你看下面的 native 和 dalvik 的 total,当总数也就是 total 这一列超过单个程序内存的最大限制时,OOM 就很有可能会出现了
2,
Naitve Heap Size: 从 mallinfo usmblks 获得,代表最大总共分配空间
Native Heap Alloc: 从 mallinfo uorblks 获得,总共分配空间
Native Heap Free: 从 mallinfo fordblks 获得,代表总共剩余空间
大赞!!
不明觉历
先赞一个