将 android shell 命令的输出写入文件
Write output of android shell command to a file
我正在尝试将 atrace 的输出写入 sdcard。我在用
getRuntime().exec()("atrace gfx > /storage/sdcard0/trace.txt")
在 app.App 中被签名为系统应用程序并且命令从 terminal.But 开始工作正常 当 运行 它来自应用程序时没有创建文件。
我通过从输入流读取数据并将其写入文件来解决它
try {
Process p = Runtime.getRuntime().exec("atrace -t 5 gfx");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
File myFile = new File("/storage/sdcard0/trac.txt");
FileOutputStream f = null;
try {
f = new FileOutputStream(myFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(f);
while (line != null) {
pw.println(line);
//Toast.makeText(getBaseContext(), line, Toast.LENGTH_LONG).show();
line = reader.readLine();
}
pw.flush();
pw.close();
f.close();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
我正在尝试将 atrace 的输出写入 sdcard。我在用 getRuntime().exec()("atrace gfx > /storage/sdcard0/trace.txt") 在 app.App 中被签名为系统应用程序并且命令从 terminal.But 开始工作正常 当 运行 它来自应用程序时没有创建文件。
我通过从输入流读取数据并将其写入文件来解决它
try {
Process p = Runtime.getRuntime().exec("atrace -t 5 gfx");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
File myFile = new File("/storage/sdcard0/trac.txt");
FileOutputStream f = null;
try {
f = new FileOutputStream(myFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(f);
while (line != null) {
pw.println(line);
//Toast.makeText(getBaseContext(), line, Toast.LENGTH_LONG).show();
line = reader.readLine();
}
pw.flush();
pw.close();
f.close();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}