在android中荒谬的proc / meminfo。 “大小”是什么意思?

时间:2011-12-05 08:38:25

标签: 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是固定的。

1 个答案:

答案 0 :(得分:0)

(Pre Honeycomb):

adnroid中有两堆。 Dalvik heapnative heap。您的应用数据存储在Dalvik堆中,但位图除外。对于位图,图像元数据存储在Dalvik堆中,但实际的位图像素数据存储在本机堆中。

NativeSize是您的应用在native heap上使用的内存量。例如,如果您加载更多图片,您会看到NativeSize会增长。这就是当应用程序加载其他动画时NativeSize会有所不同的原因。

我猜NativeFreeDalvikFree是释放的字节数,因此它与NativeSize - NativeAlloc无关。

有关详情,请参阅此处: http://www.youtube.com/watch?v=_CruQY55HOk