我一直在挖掘应用中的内存使用情况。
因此,要了解内存使用情况,我会编写一些运行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
是固定的。
答案 0 :(得分:0)
(Pre Honeycomb):
adnroid中有两堆。 Dalvik heap
和native heap
。您的应用数据存储在Dalvik堆中,但位图除外。对于位图,图像元数据存储在Dalvik堆中,但实际的位图像素数据存储在本机堆中。
NativeSize
是您的应用在native heap
上使用的内存量。例如,如果您加载更多图片,您会看到NativeSize
会增长。这就是当应用程序加载其他动画时NativeSize会有所不同的原因。
我猜NativeFree
,DalvikFree
是释放的字节数,因此它与NativeSize - NativeAlloc
无关。
有关详情,请参阅此处: http://www.youtube.com/watch?v=_CruQY55HOk