【发布时间】:2015-08-17 19:11:00
【问题描述】:
我使用 Process 来运行命令行指令。
当我运行一条指令时,应用程序将在 logcat 上显示“I/System: exec(MY_INSTRUCTIONS)”。
但是因为我正在为其他人开发私有SDK,所以我必须禁用logcat上的消息。
我的代码如下:
String[] command = {"ls", "-rf"};
ProcessBuilder pb = new ProcessBuilder(command);
try {
Process process = pb.start();
} catch (IOException e) {
e.printStackTrace();
}
logcat 消息如下所示:
I/System﹕ exec(ls -rf @ com.mypackage.MainActivity.cli:152)
我知道 proguard 可以删除所有日志消息,但禁用“android.util.Log”消息无法正确禁用此系统消息。
请帮助我禁用此 logcat 消息或通过 proguard 删除消息。
【问题讨论】:
-
你需要删除 logcat 消息吗?
-
我想让这条消息不再显示在 logcat 上。
-
也许有另一种方法可以在没有 ProcessBuilder 的情况下完成您想做的事情。您当然可以使用纯 Java 执行该命令,而根本不需要 ProcessBuilder。
-
@Yepher 我用
Runtime.getRuntime().exec("MY_INSTRUCTIONS")做同样的事情,但我得到了相同的日志。你能给我另一种方法吗? -
如果您的命令是 ("ls", "-rf"),那么您可以使用 File 并查看目录中的文件。见stackoverflow.com/a/5694398/1733038