Context context = this.getApplicationContext();
ActivityManager mgr = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = mgr.getRunningAppProcesses();
Log.e("DEBUG", "Running processes:");
for(Iterator i = processes.iterator(); i.hasNext(); )
{
RunningAppProcessInfo p = (RunningAppProcessInfo)i.next();
Log.e("DEBUG", " process name: "+p.processName);
Log.e("DEBUG", " pid: "+p.pid);
int[] pids = new int[1];
pids[0] = p.pid;
android.os.Debug.MemoryInfo[] MI = mgr.getProcessMemoryInfo(pids);
Log.e("memory"," dalvik private: " + MI[0].dalvikPrivateDirty);
Log.e("memory"," dalvik shared: " + MI[0].dalvikSharedDirty);
Log.e("memory"," dalvik pss: " + MI[0].dalvikPss);
Log.e("memory"," native private: " + MI[0].nativePrivateDirty);
Log.e("memory"," native shared: " + MI[0].nativeSharedDirty);
Log.e("memory"," native pss: " + MI[0].nativePss);
Log.e("memory"," other private: " + MI[0].otherPrivateDirty);
Log.e("memory"," other shared: " + MI[0].otherSharedDirty);
Log.e("memory"," other pss: " + MI[0].otherPss);
Log.e("memory"," total private dirty memory (KB): " + MI[0].getTotalPrivateDirty());
Log.e("memory"," total shared (KB): " + MI[0].getTotalSharedDirty());
Log.e("memory"," total pss: " + MI[0].getTotalPss());
}
В современных ОС приложения используют общие библиотеки. Следовательно, некоторая память используется
несколькими приложениями, что затрудняет определение использования памяти приложениями.
dalvikPrivateDirty - это память, которая будет освобождена Java
виртуальная машина, если процесс убит
- nativePrivateDirty - то же самое для собственного кода, то же самое для некоторых
другой код (не уверен, что еще есть)
otherPrivateDirty dalvikSharedDirty - это разделяемая память, используемая
виртуальная машина Java, но это не будет освобождено
если это приложение убито dalvikPss - оценка того, сколько памяти
используется приложением. Это включает в себя всю личную память и
доля разделяемой памяти Проверьте, что pss> = private Причина
что используется только часть общей памяти, так что
обоснованность использования общей памяти всеми ответственными приложениями
Это значение используется для оценки загрузки памяти приложения.
Итоговые суммы представляют собой сумму по далвику, туземцу и др.