private String getMemoryInfo() {
StringBuilder sb = new StringBuilder();
Runtime runtime = Runtime.getRuntime();
sb.append("本应用maxMemory======>")
.append(runtime.maxMemory() / 1024 / 1024).append("Mb").append("\n");
sb.append("本应用totalMemory======>")
.append(runtime.totalMemory() / 1024 / 1024).append("Mb").append("\n");
sb.append("本应用freeMemory======>")
.append(runtime.freeMemory() / 1024 / 1024).append("Mb").append("\n");
sb.append("本应用 当前使用======>")
.append((runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024)
.append("Mb").append("\n");
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
sb.append("系统availMem======>")
.append(memoryInfo.availMem / 1024 / 1024).append("Mb").append("\n");
sb.append("系统totalMem======>")
.append(memoryInfo.totalMem / 1024 / 1024).append("Mb").append("\n");
sb.append("系统lowMemory======>")
.append(memoryInfo.lowMemory).append("\n");
return sb.toString();
}
demo
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) this.findViewById(R.id.tv);
CountDownTimer countDownTimer = new CountDownTimer( 60 * 60 * 1000L, 1000L) {
@Override
public void onTick(long millisUntilFinished) {
String memoryInfo = getMemoryInfo();
textView.setText(memoryInfo);
}
@Override
public void onFinish() {
String memoryInfo = getMemoryInfo();
Log.e(TAG, "onFinish: memoryInfo===> " + memoryInfo);
}
};
countDownTimer.start();
}
private String getMemoryInfo() {
StringBuilder sb = new StringBuilder();
Runtime runtime = Runtime.getRuntime();
sb.append("本应用maxMemory======>")
.append(runtime.maxMemory() / 1024 / 1024).append("Mb").append("\n");
sb.append("本应用totalMemory======>")
.append(runtime.totalMemory() / 1024 / 1024).append("Mb").append("\n");
sb.append("本应用freeMemory======>")
.append(runtime.freeMemory() / 1024 / 1024).append("Mb").append("\n");
sb.append("本应用 当前使用======>")
.append((runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024)
.append("Mb").append("\n");
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo(memoryInfo);
sb.append("系统availMem======>")
.append(memoryInfo.availMem / 1024 / 1024).append("Mb").append("\n");
sb.append("系统totalMem======>")
.append(memoryInfo.totalMem / 1024 / 1024).append("Mb").append("\n");
sb.append("系统lowMemory======>")
.append(memoryInfo.lowMemory).append("\n");
return sb.toString();
}
}
Runtime方式
private fun getAppMemoryInfo() {
val runtime = Runtime.getRuntime()
println(
"freeMemory================================" +
runtime.freeMemory() / 1024 / 1024
)
println(
"totalMemory================================" +
runtime.totalMemory() / 1024 / 1024
)
println(
"maxMemory================================" +
runtime.maxMemory() / 1024 / 1024
)
}
ActivityManager方式
private fun getRAMMemoryInfo() {
val activityManager =
this.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val memoryInfo = ActivityManager.MemoryInfo()
activityManager.getMemoryInfo(memoryInfo)
println("totalMem================================" + memoryInfo.totalMem / 1024 / 1024)
println("availMem================================" + memoryInfo.availMem / 1024 / 1024)
println("lowMemory================================" + memoryInfo.lowMemory)
}