如何在 android 设备中获取当前可用的免费 RAM [重复]
Posted
技术标签:
【中文标题】如何在 android 设备中获取当前可用的免费 RAM [重复]【英文标题】:How to get current free RAM available in android device [duplicate] 【发布时间】:2014-12-05 09:20:39 【问题描述】:在设备中,当我们进入Manage apps
->running tab
时,我们会在底部看到已用内存和可用内存实时改变它们的值。
我们如何将其编码到我的应用中以显示相同的统计信息?
谢谢
【问题讨论】:
相关:***.com/questions/3170691/… 【参考方案1】:你可以使用这个方法。
private float readUsage()
try
RandomAccessFile reader = new RandomAccessFile("/proc/stat", "r");
String load = reader.readLine();
String[] toks = load.split(" ");
long idle1 = Long.parseLong(toks[4]);
long cpu1 = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[5])
+ Long.parseLong(toks[6]) + Long.parseLong(toks[7]) + Long.parseLong(toks[8]);
try
Thread.sleep(360);
catch (Exception e)
reader.seek(0);
load = reader.readLine();
reader.close();
toks = load.split(" ");
long idle2 = Long.parseLong(toks[4]);
long cpu2 = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[5])
+ Long.parseLong(toks[6]) + Long.parseLong(toks[7]) + Long.parseLong(toks[8]);
return (float)(cpu2 - cpu1) / ((cpu2 + idle2) - (cpu1 + idle1));
catch (IOException ex)
ex.printStackTrace();
return 0;
【讨论】:
【参考方案2】:ActivityManager.MemoryInfo
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager)getActivity(). getSystemService(Context.ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
long percentAvail = mi.availMem / mi.totalMem;
【讨论】:
percentAvail 使用上述方法始终为 0,可能应该是:float percentAvail = Math.round(100.0 * (double)mi.availMem / (double)mi.totalMem);
您需要转换为 double 才能使 percentAvail 按预期工作。 double percentAvail = (double) mi.availMem / mi.totalMem;
以上是关于如何在 android 设备中获取当前可用的免费 RAM [重复]的主要内容,如果未能解决你的问题,请参考以下文章