如何在 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS/Android 上获取当前设备语言?

Android:如何获取当前设备 WiFi 直接名称

如何获取android移动设备的当前位置经纬度?

如何在Android中获取当前的内存使用量?

Android能够获取到唯一的设备ID吗

如何在不使用 GPS 的情况下获取 Android 设备的当前城市名称?