2011-08-25 80 views
1

我寫了一些運行android命令行並收集輸出的代碼。程序中的命令行 - 並非所有命令都執行問題

它正確執行「ls」,但是當我把命令「top -n 1」顯示什麼都不顯示。

它是一個明顯的問題?這款手機沒有紮根,當使用「終端模擬器」時,我可以看到「頂級」輸出。

這裏是代碼:

// ** execute command line and gather the output **// 
    final StringBuilder log = new StringBuilder(); 
    try{ 
     ArrayList<String> commandLine = new ArrayList<String>(); 
     commandLine.add("top"); 
     commandLine.add("-n1"); 

     Process process = Runtime.getRuntime().exec(commandLine.toArray(new String[0])); 

     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 

     String line; 
     while ((line = bufferedReader.readLine()) != null){ 
      log.append(line); 
      log.append(", \n"); 
     } 
     log.append(", \n"); 
    } 
    catch (IOException e){ 

    } 

感謝, A.

+0

任何代碼或日誌放棄? – OcuS

+1

我不認爲正式支持執行命令行應用程序,這意味着它是不確定它是否工作,特別是跨設備。 – mibollma

+0

好的,我成功運行「ps」,但我得到了很多「根」進程。我如何修剪所有「根」過程。 PS命令有沒有後綴? – Karako2017

回答

0

你可能想顯示你的一些代碼。通常,使用Runtime運行的命令不會在shell中執行,因此您可能想嘗試使用「sh -c top -n 1」作爲prog參數。

+0

「sh -c top -n1」卡住了我的應用程序.... – Karako2017

+0

那麼,您可能想使用調試器來檢查它「卡住」的位置。 –