i.java 源代码
package w0;
import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.content.Context;
import android.text.format.Formatter;
import android.util.DisplayMetrics;
import android.util.Log;
public class i {
private final int f27335a;
private final int f27336b;
private final Context f27337c;
private static class a implements b {
private final DisplayMetrics f27338a;
public a(DisplayMetrics displayMetrics) {
this.f27338a = displayMetrics;
}
@Override
public int a() {
return this.f27338a.heightPixels;
}
@Override
public int b() {
return this.f27338a.widthPixels;
}
}
interface b {
int a();
int b();
}
public i(Context context) {
this(context, (ActivityManager) context.getSystemService("activity"), new a(context.getResources().getDisplayMetrics()));
}
private static int b(ActivityManager activityManager) {
float f6;
float memoryClass = activityManager.getMemoryClass() * 1024 * 1024;
if (d(activityManager)) {
f6 = 0.33f;
} else {
f6 = 0.4f;
}
return Math.round(memoryClass * f6);
}
@TargetApi(19)
private static boolean d(ActivityManager activityManager) {
return activityManager.isLowRamDevice();
}
private String e(int i6) {
return Formatter.formatFileSize(this.f27337c, i6);
}
public int a() {
return this.f27335a;
}
public int c() {
return this.f27336b;
}
i(Context context, ActivityManager activityManager, b bVar) {
this.f27337c = context;
int b6 = b(activityManager);
int b7 = bVar.b() * bVar.a() * 4;
int i6 = b7 * 4;
int i7 = b7 * 2;
int i8 = i7 + i6;
if (i8 <= b6) {
this.f27336b = i7;
this.f27335a = i6;
} else {
int round = Math.round(b6 / 6.0f);
this.f27336b = round * 2;
this.f27335a = round * 4;
}
if (Log.isLoggable("MemorySizeCalculator", 3)) {
StringBuilder sb = new StringBuilder();
sb.append("Calculated memory cache size: ");
sb.append(e(this.f27336b));
sb.append(" pool size: ");
sb.append(e(this.f27335a));
sb.append(" memory class limited? ");
sb.append(i8 > b6);
sb.append(" max size: ");
sb.append(e(b6));
sb.append(" memoryClass: ");
sb.append(activityManager.getMemoryClass());
sb.append(" isLowMemoryDevice: ");
sb.append(d(activityManager));
Log.d("MemorySizeCalculator", sb.toString());
}
}
}