你好,希望你能过得愉快。我的朋友们,我想知道我的安卓设备有多少内存以及使用了多少内存,包括活动内存、非活动内存、空闲内存和有线内存的大小(单位为MB)。我已经通过这个链接获悉通过解析“/system/bin/cat”、“/proc/meminfo”可以获取上述信息,是的,我成功获取了这些信息,但是我收到了一个很长的字符串,其中包含了所有东西。
我想知道是否可以动态地将此字符串拆分为不同的设备,或者是否有其他方法来找出上述内容。
我还查阅了这个,但它也没有太多用处……我能轻松获取可用内存信息,但我需要全部四个。
非常感谢任何帮助。提前致谢。
MemTotal: 377192 kB
MemFree: 10448 kB
Buffers: 1368 kB``
Cached: 74276 kB
SwapCached: 0 kB
Active: 143116 kB
Inactive: 177292 kB
Active(anon): 118388 kB
Inactive(anon): 137664 kB
Active(file): 24728 kB
Inactive(file): 39628 kB
Unevictable: 10664 kB
Mlocked: 10372 kB
HighTotal: 190464 kB
HighFree: 568 kB
LowTotal: 186728 kB
LowFree: 9880 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 8 kB
Writeback: 0 kB
AnonPages: 255440 kB
Mapped: 45816 kB
Shmem: 624 kB
Slab: 10952 kB
SReclaimable: 2456 kB
SUnreclaim: 8496 kB
我从这里获取到的字符串比之前更长
private String ReadCPUinfo()
{
ProcessBuilder cmd;
StringBuffer strMemory = new StringBuffer();
//final ActivityManager activityManager =(ActivityManager)
context.getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager actvityManager = (ActivityManager) this.getSystemService(
ACTIVITY_SERVICE );
ActivityManager.MemoryInfo mInfo = new ActivityManager.MemoryInfo ();
actvityManager.getMemoryInfo( mInfo );
strMemory.append("Available Memory : ");
strMemory.append(mInfo.availMem/1048576L);
strMemory.append("\n");
strMemory.append("\n");
String result=strMemory.toString();
try{
String[] args = {"/system/bin/cat", "/proc/meminfo"};
cmd = new ProcessBuilder(args);
Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while(in.read(re) != -1){
System.out.println("itthhe ==== --- >>>> "+new String(re));
result = result + new String(re);
}
in.close();
} catch(IOException ex){
ex.printStackTrace();
}
return result;
}
我想知道是否可以动态地将此字符串拆分为不同的设备,或者是否有其他方法来找出上述内容。
我还查阅了这个,但它也没有太多用处……我能轻松获取可用内存信息,但我需要全部四个。
非常感谢任何帮助。提前致谢。