首页 > 解决方案 > 以 GB 为单位获取设备 RAM 和内部存储

问题描述

我需要以 GB(千兆字节)为单位获取应用程序内存和内部存储。

我试过这个

private void getAppRam() {

        String DeviceModel = android.os.Build.MODEL;
        String DeviceName = android.os.Build.MANUFACTURER;
        String sdk = Build.VERSION.RELEASE;

        System.out.println("DeviceModel...." + DeviceModel);
        System.out.println("DeviceName ...." + DeviceName);
        System.out.println("sdk ...." + sdk);

        ActivityManager actManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
        actManager.getMemoryInfo(memInfo);
        long totalMemory = memInfo.totalMem / (1024 * 1024);
        System.out.println("ram...." + totalMemory);
    }

但没有找到准确的结果,有人可以建议任何内部存储解决方案。

标签: androidmemoryraminternal-storage

解决方案


来,试试这个

要获得总 RAM:

private long totalRamMemorySize() {
  ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
  ActivityManager activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
  activityManager.getMemoryInfo(mi);
  long availableMegs = mi.totalMem / 1048576L;
  return availableMegs;
 }

获得总内部记忆:

public static long getTotalInternalMemorySize() {
    File path = Environment.getDataDirectory();
    StatFs stat = new StatFs(path.getPath());
    long blockSize = stat.getBlockSize();
    long totalBlocks = stat.getBlockCount();
    return totalBlocks * blockSize;
 }

有关更多数据,请尝试此链接获取设备 RAM 和内部存储 - 引发微笑


推荐阅读