android - android 中可笑的 proc/meminfo。 'size' 是什么意思?

标签 android size dalvik

我一直在深入研究我的应用程序中的内存使用情况。

因此,为了了解内存使用情况,我编写了一些运行 meminfo 的脚本(每行在 10 秒后显示)

NativeSize DalvikSize TotalSize
89556   5895    95451
89556   5959    95515
89556   6023    95579
89556   6087    95643
89556   6151    95707
89556   6215    95771
89556   6279    95835

NativeAlloc DalvikAlloc TotalAlloc
13943   3238    17181
15959   3334    19293
16264   3390    19654
16570   3447    20017
16877   3503    20380
17177   3559    20736
17251   3636    20887

NativeFree  DalvikFree  TotalFree
376 2657    3033
8   2625    2633
27  2633    2660
44  2640    2684
26  2648    2674
42  2656    2698
280 2643    2923

NativeFree = NativeSize - NativeAlloc,对吧?

还有一个问题,当我的应用程序加载其他动画时,NativeSize 会发生变化。我认为 NativeSize 是固定的。

最佳答案

( hive 前):

adnroid 中有两个堆。 Dalvik 堆 native 堆。您的应用程序数据存储在 Dalvik 堆中,但位图除外。对于位图,图像元数据存储在 Dalvik 堆中,但实际位图像素数据存储在 native 堆中。

NativeSize 是您的应用在 native 堆 上使用的内存量。例如,如果加载更多图像,您会发现 NativeSize 会变大。这就是当您的应用程序加载其他动画时 NativeSize 会发生变化的原因。

我猜NativeFreeDalvikFree是释放的字节,所以它与NativeSize - NativeAlloc无关。

更多信息请看这里: http://www.youtube.com/watch?v=_CruQY55HOk

关于android - android 中可笑的 proc/meminfo。 'size' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382732/

相关文章:

android - 未发送发件箱消息

android - 为android sdk 设置运行cocos2d 示例程序的环境。

java - 向 smali 源添加代码

php - PHP session 的最大大小

android - 转换为 Dalvik 格式失败,出现错误 1

android - 我如何制作孤立的达尔维克

android - libGDX:将调色板中的第一种颜色视为透明色

android - asmack XMPP 新用户注册

python - 返回 [1,0] 或 [0,1] 的优雅方式

angularjs - Angular : get Dimension from Base64 Image