我试图获取总内存 (RAM) 和内部存储空间大小,但我使用的每种方法都报告它太低。我知道内核可能会占用其中的一部分,但我需要知道总共安装了多少。
对于内存,我首先从/proc/meminfo/读取,然后使用 getMemoryInfo
。其中每一个都报告小于安装的内存量(700MB 而不是 1GB)。
对于内部存储大小,我使用的是 Environment.getDataDirectory
、getBlockSizeLong
和 getBlockCountLong
。这个结果比我知道安装的存储量要低得多。操作系统中的设置与我的方法报告的数量一致,但我需要知道安装的总量,而不仅仅是它认为存在的数量(即使我输入它在我的脑海中听起来违反直觉)。
编辑:我查看了发送的问题并按照我所说的尝试了他们的方法。与我所知道的安装相比,报告的值不正确。
最佳答案
内存:
Total RAM available android APP
基本上是:
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
存储:
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
祝你好运!
关于java - 如何获得 TOTAL 内存和内部存储大小 Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32094038/