应该 Android Shell 命令 运行 使用 Java 或 Jni

Should Android Shell Commands Run With Java or Jni

在 android 上有两种方法可以使用 运行 shell 命令,使用 java 或使用 jni。

我想知道 运行 shell 命令是否更有效。

Java

runtime.exec("su");

Jni

system("su");

虽然我确实听说 Jni 不接受多个命令,这可能是一个挫折。

您也可以尝试使用 http://alvinalexander.com/java/java-exec-processbuilder-process-1 .

希望对您有所帮助 ;)

Runtime.exec()下的机制在原生中是fork/exec,这是一种更常见、更安全的命令执行方式。

system() 在 jni 中使用您当前的 shell 来解释命令。

此外,你可以在jni中使用fork/exec来执行命令。

这两种方式的对比见here

最后,很难说哪个更高效,他们都必须创建一个新进程来处理执行。