2011-07-15 3 views
1

J'utilise le code suivant pour obtenir l'utilisation de la mémoire.Statistiques de la mémoire Android

double allocated = Debug.getNativeHeapAllocatedSize()/(double) 1048576; 
double available = Debug.getNativeHeapSize()/(double) 1048576.0; 
double free = new Double(Debug.getNativeHeapFreeSize())/(double) 1048576.0; 

Et je reçois le journal suivant:

07-15 12:59:11.149: DEBUG/NKHeap(9363): debug.heap native: allocated 13,220MB of 16,059MB (0,108MB free) 

Mon problème est que le libre plus le alloué ne correspond pas au total. Ai-je manqué quelque chose de basique, ou est-ce la précision à laquelle je devrais m'attendre?

Répondre

1

Pour obtenir l'utilisation de la mémoire essayer quelque chose comme:

Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo(); 
Debug.getMemoryInfo(memoryInfo); 

String memMessage = String.format("Memory: Pss=%.2f MB, 
Private=%.2f MB, Shared=%.2f MB", 
memoryInfo.getTotalPss()/1024.0, 
memoryInfo.getTotalPrivateDirty()/1024.0, 
memoryInfo.getTotalSharedDirty()/1024.0); 

Vous pouvez en lire davantage dans ce blog here.

+0

Cependant le code écrit ne pas les détails que je voulais, le lien clairement expliquer pourquoi c'est assez difficile à réaliser. – gmate