Ver la memoria de proceso del teléfono Android

adb shell dumpsys meminfo nombre_paquete o pid

p.ej

adb shell dumpsys meminfo com.android.systemui

adb shell dumpsys meminfo com.android.settings

 

Ver la columna de pss total, que indica cuánta memoria se usa

En términos generales, la huella de memoria tiene las siguientes reglas: VSS> = RSS> = PSS> = USS 

VSS-Virtual Set Size consumo de memoria virtual (incluida la memoria ocupada por bibliotecas compartidas)
RSS-Resident Set Size memoria física real utilizada (incluida la memoria ocupada por bibliotecas compartidas)
PSS-Proportional Set Size memoria física real utilizada (ocupada por bibliotecas compartidas) Memoria)
Memoria física USS-Unique Set Size ocupada solo por el proceso (sin incluir la memoria ocupada por bibliotecas compartidas)

adb shell dumpsys meminfo | grep nombre_paquete

adb shell dumpsys meminfo | grep com.android.settings

adb shell dumpsys meminfo | grep com.android.systemui

 

ps -A | grep -i servidor de cámaras

ps -A | grep -i com.android.systemui

 

 

adb shell cat / proc / meminfo

MemFree: la cantidad de memoria libre, lo que significa la memoria no utilizada del sistema. MemUsed = MemTotal-MemFree es la memoria que se ha utilizado.

MemAvailable: la cantidad de memoria disponible, la cantidad de memoria disponible para la aplicación. Aunque se ha utilizado parte de la memoria en el sistema, se puede recuperar. Por ejemplo, la memoria caché / búfer y losa se pueden recuperar, por lo que MemFree no puede representar toda la memoria disponible. Esta parte de la memoria recuperable más MemFree es la memoria disponible para el sistema. Es decir: MemAvailable≈MemFree + Buffers + Cached , que es calculado por el kernel usando un algoritmo específico y es un valor estimado. La diferencia clave entre este y MemFree es que MemFree se refiere al nivel del sistema y MemAvailable se refiere al nivel de la aplicación.

 

   MemoryInfo memoryInfo = new MemoryInfo ();  

    ActivityManager privado mActivityManager = (ActivityManager) getSystemService (Context.ACTIVITY_SERVICE);  
    // ActivityManager privado mActivityManager = = (ActivityManager) getInstrumentation (). getTargetContext (). getSystemService (Context.ACTIVITY_SERVICE);

 ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();

    mActivityManager.getMemoryInfo (memoryInfo);  
    long availMem = memoryInfo.availMem / 1024/1024;  
    long totalMem = memoryInfo.totalMem / 1024/1024;

    umbral largo = memoryInfo.threshold / 1024/1024;

Log.i (TAG, "totalMem =" + totalMem + "availMem =" + availMem + "umbral =" + umbral);

 

 

private void getProcessMemroy() {
    //ActivityManager am = (ActivityManager) getInstrumentation()
    //        .getContext().getSystemService(Context.ACTIVITY_SERVICE);

    ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
   List<RunningAppProcessInfo> apps = am.getRunningAppProcesses();

    for (RunningAppProcessInfo proc : apps) {
        Log.i(TAG, "process:"+proc.processName);
        if (!proc.processName.contains("com.android.settings")) {
            continue;
        }

        int[] pids = new int[1];
        pids[0]=proc.pid;

        MemoryInfo meminfo = am.getProcessMemoryInfo(pids)[0];
        Log.i(TAG, "pid="+proc.pid+" totalPSS="+meminfo.getTotalPss()/1024+" nativePSS="+meminfo.nativePss/1024+" dalvikPSS="+meminfo.dalvikPss/1024);

    }

import java.lang.Process;    
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;    

        String cmd = "adb shell dumpsys meminfo com.android.settings";
        int mem_result = 0;
        try {             Proceso p = Runtime.getRuntime (). exec (cmd);

            InputStream input = p.getInputStream ();
            Lector BufferedReader = nuevo BufferedReader (nuevo InputStreamReader (entrada));
            String line = "";
            while ((línea = reader.readLine ())! = null) {                 if (line.startsWith ("TOTAL")) {                     Log.i (TAG, line.trim ());                     descanso;                 }             }             reader.close ();             input.close ();         } catch (IOException e) {            Log.e (TAG, "dumpsys meminfo falló" + e);         }









 

#! / bin / bash

adb root
adb esperar al dispositivo
adb shell setenforce 0

para ((i = 1; i <10; i ++));
do
time1 = $ (date "+% Y% m% d-% H% M% S")
echo $ time1 >> ./log.txt
adb shell dumpsys meminfo >> ./log.txt
sleep 20s
done

Supongo que te gusta

Origin blog.csdn.net/kv110/article/details/103644203
Recomendado
Clasificación