先贴下代码
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo info = new MemoryInfo();
am.getMemoryInfo(info);
return Formatter.formatFileSize(context, info.availMem);// 将获取的内存大小规格化
这个是获得系统可用内存大小的代码,我输出的信息为什么跟setting里storage里的available space的大小不一致呢,而且还差别老大了。
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo info = new MemoryInfo();
am.getMemoryInfo(info);
return Formatter.formatFileSize(context, info.availMem);// 将获取的内存大小规格化
这个是获得系统可用内存大小的代码,我输出的信息为什么跟setting里storage里的available space的大小不一致呢,而且还差别老大了。
storage和内存没啥关系。这里问同学,应该都知道RAM和ROM的区别吧,但现在通常都是用flash代替ROM了。直接说就是:
am.getMemoryInfo, 返回的是系统的内存信息,这是确切的内存,基本上android的程序都要加载到内存中才能运行。setting里storage里的available space 指的是系统空余flash盘的大小, 就像获取你硬盘的大小一样。如果是PC,就是内存和硬盘的区别了,你说怎么会一致?
我还以为是一回事呢,写出来代码就像知道自己活得的对不对,以为在storage里看呢。