用于Android应用程序的堆内存的用法

时间:2017-03-06 13:05:26

标签: android memory

我使用以下API来检查我的应用可以使用的内存,并获得以下结果。

    Runtime rt = Runtime.getRuntime();
    long maxMemory = rt.maxMemory();
    Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    int memoryClass = am.getMemoryClass();
    Log.v("onCreate", "memoryClass:" + Integer.toString(memoryClass));

V / onCreate:maxMemory:402653184

V / onCreate:memoryClass:64

但是,当我启动我的应用程序时,它显示5MB分配和1 MB免费。 我假设整个64 MB将用于应用程序,并假设如果从64MB分配5MB,那么59MB应该是免费的。

随着我使用该应用程序的进展,分配的堆大小正在增长,其间存在大量GC原因,这会影响UI性能。

有人能让我理解这个过程。

这会以这种方式工作吗?

由于

0 个答案:

没有答案