如何获得总内存和内部存储大小 Android?

jam*_*mbo 6 java size ram storage android

我正在尝试获取总内存 (RAM) 和内部存储大小,但我使用的每种方法都报告它太低。我知道内核可能会占用其中的一些,但我需要知道总共安装了多少。

对于内存,我首先从 /proc/meminfo/ 读取,然后使用getMemoryInfo. 每个报告都小于安装的内存量(700MB 而不是 1GB)。

对于我使用的内部存储大小Environment.getDataDirectorygetBlockSizeLonggetBlockCountLong. 这样做的结果远低于我所知道的已安装的存储量。操作系统中的设置与我的方法报告的数量一致,但我需要知道安装的总量,而不仅仅是它认为的数量(即使我输入它在我脑海中听起来违反直觉)。

编辑:正如我所说,我已经查看了正在发送的问题并尝试了他们的方法。与我所知道的安装情况相比,报告的值不正确。

Fer*_*Fer 5

对于内存:

安卓APP可用内存总量

基本上是:

MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
Run Code Online (Sandbox Code Playgroud)

贮存:

可用存储 Android 应用程序

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
long bytesAvailable = (long)stat.getBlockSize() *(long)stat.getBlockCount();
long megAvailable = bytesAvailable / 1048576;
Run Code Online (Sandbox Code Playgroud)

祝你好运!

  • 正如我所说,我已经尝试使用 `getMemoryInfo` 它报告 700KB 而不是 1GB。至于存储,我需要**内部**存储空间。 (2认同)