2017-08-08 21 views
0

アンドロイドを使って 'top -n 1'コマンドを実行し、可能であればデバイスの内部ストレージのファイルにtopコマンドの出力を保存します。それ以外の場合は、ファイルはsdカードに保存する必要があります。私はそれを達成するために次のコードを使用しました。linuxコマンドを実行して出力をファイルに保存する

File logFile = new File(getFilesDir().getAbsolutePath()+File.separator+"logtex.txt"); 
      if(!logFile.exists()) 
      { 
       logFile.createNewFile(); 
      } 

      logFile.setExecutable(true,false); 
      logFile.setReadable(true,false); 
      logFile.setWritable(true,false); 
      Log.e("executeToplog", "err in"); 
      Runtime.getRuntime().exec("top -n 1 > /data/user/0/com.example.abcdef.memcpuusage/files/logtex.txt "); 

しかし、うまくいかないようです。コードにはどのような変更を加える必要がありますか?

+0

'動作していないようです。あなたが直面している正確な問題は何ですか? – m0skit0

+0

プログラムを実行した後、logtex.txtは空です。 – deepCode

+0

'top -n 1'をシェルで実行した結果は?ほとんどのLinuxコマンドは、Androidでは存在しないか、完全に壊れていることに注意してください。 – m0skit0

答えて

0

ファイルを出力するためのアイディアが嫌いです。私は

しかし、それは、そのアンドロイドは「トップ」をサポートしていないかもしれあなたが(私のUbuntuは/ usr/binに/上)完全なパスを適用する必要があるかもしれ

Process process = Runtime.getRuntime().exec ("top -1 1"); 
Reader reader = new InputStreamReader (process.getInputStream()); 

// simple approach, omit some checkings, not compiled or tested, so may still fail 
FileWriter writer = new FileWriter ("top.log"); 
for (int chr; (chr = reader.read()) != –1;) { 
    writer.append((char) chr); 
} 
writer.close() 

を以下にしようとするだろう

ファイルへの出力が必要な場合は、そのファイルにreaderの内容を入れてください。 ">"はシェルの機能であり、execのものではありません

関連する問題