GOOGLE ADS

martes, 19 de abril de 2022

Determinar el rendimiento del dispositivo Android

Quiero ejecutar diferentes líneas de código para dispositivos Android con diferente rendimiento. Por ejemplo algo como esto:

if (isHighPerformanceDevice()) {
// run code for devices with high performance
} else if (isMediumPerformanceDevice()) {
// run code for devices with medium performance
} else {
// run code for devices with low performance
}

O al menos:

if (isHighPerformanceDevice()) {
// run code for devices with high performance
} else {
// run code for devices with low performance
}

Me pregunto si hay algo Android SDKque pueda usar o esos métodos deberían implementarse manualmente. Agradecería cualquier orientación al respecto, gracias.

Dispositivos con Android 10 y superior.


Solución del problema

Preferiría que obtuvieras el rendimiento de la unidad usando su RAM.

Para obtener los valores de RAM, simplemente haga lo siguiente:

ActivityManager actManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
assert actManager!= null;
actManager.getMemoryInfo(memInfo);
long totalMemory = memInfo.totalMem;
long availMemory = memInfo.availMem;
long usedMemory = totalMemory - availMemory;
float precentlong = (((float) (availMemory / totalMemory)) * 100);

Aquí obtendrá el tamaño de RAM total, libre y usado. El valor de estos estará en "largo", así que formatéelo para que sea legible por humanos (es decir, en MB/GB). Utilice el siguiente método para hacerlo:

 private String floatForm(double d) {
return String.format(java.util.Locale.US, "%.2f", d);
}
private String bytesToHuman(long size) {
long Kb = 1024;
long Mb = Kb * 1024;
long Gb = Mb * 1024;
long Tb = Gb * 1024;
long Pb = Tb * 1024;
long Eb = Pb * 1024;
if (size < Kb) return floatForm(size) + " byte";
if (size >= Kb && size < Mb) return floatForm((double) size / Kb) + " KB";
if (size >= Mb && size < Gb) return floatForm((double) size / Mb) + " MB";
if (size >= Gb && size < Tb) return floatForm((double) size / Gb) + " GB";
if (size >= Tb && size < Pb) return floatForm((double) size / Tb) + " TB";
if (size >= Pb && size < Eb) return floatForm((double) size / Pb) + " Pb";
if (size >= Eb) return floatForm((double) size / Eb) + " Eb";
return "0";
}

Ahora puede personalizar este código según sus necesidades. No puedo decir que 1 Pb de RAM sea de alto o bajo rendimiento en su caso. Depende de lo que haga tu aplicación. eso es lo que tienes que hacer

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...