我的用户界面仅在4.0中被阻止*使用子句:“Runtime.getRuntime().exec(”cat proc/meminfo“);”。 下面的代码有什么问题吗? 在此先感谢。为什么运行时在Android 4.0/4.0.3中被阻止?
登录:
03-27 13:37:18.545: I/MyActivity(19730): ini().429: 1332826638549
03-27 13:37:18.545: I/MyActivity(19730): ini().434: 1332826638549
03-27 13:37:18.865: D/dalvikvm(19611): GC_CONCURRENT freed 389K, 6% free 9733K/10311K, paused 1ms+2ms
代码:
Log.i(getClass().getName(), "ini().434: " + System.currentTimeMillis());
try {
Process process = Runtime.getRuntime().exec("cat proc/meminfo");//! hang here
Log.i(getClass().getName(), "ini().436: " + System.currentTimeMillis());
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
Log.i(getClass().getName(), "ini().438: " + System.currentTimeMillis());
String str = bufferedReader.readLine();
totleMemory = Long.parseLong(str.replaceAll("\\s+", "").replaceAll("[a-zA-Z]", "").replaceAll(":", ""));
Log.i(getClass().getName(), "ini().441: " + System.currentTimeMillis());
totleMemory *= 1024;
} catch (Exception e) {
}
Log.i(getClass().getName(), "ini().446: " + System.currentTimeMillis());
MasterJB,谢谢你们一样。 – thecr0w 2012-04-05 03:10:46
顺便说一句,你是否同意这种说法:因为有三个流(stdin,stdout,stderr),我们可以通过1.getErrorStream()获取2。getInputStream()3.getOutputStream(),并且只有在错误流完成后才会获得输入流,如果发生某些意外错误。或者会有阻塞,是这样吗? – thecr0w 2012-04-05 03:21:01
我不确定我是否只为我的应用程序使用了InputStream。你仍然有错误,或者你在做更多的研究吗? – 2012-04-05 03:23:31