我想为具有不同性能的Android设备运行不同的代码行。例如这样的事情:
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
}
或者至少:
if (isHighPerformanceDevice()) {
// run code for devices with high performance
} else {
// run code for devices with low performance
}
我想知道
Android SDK
中是否有我可以使用的东西,或者那些方法应该手动实现?我将不胜感激任何有关这方面的指导,谢谢。
搭载 Android 10 及更高版本的设备。
我希望您使用其 RAM 来获得驱动器性能。
要获取 RAM 值,只需执行以下操作:
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);
在这里您将获得总 RAM 大小以及可用和已用 RAM 大小。 这些值将是“long”,因此将其格式化为人类可读的格式(即以 MB/GB 为单位)。 使用以下方法来执行此操作:
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";
}
现在您可以根据需要自定义此代码。在你的情况下,我不能说 1 Pb RAM 是高性能还是低性能。这取决于您的应用程序的用途。这就是你需要做的事情