2015-06-15 2 views
1

На андроиде есть два способа запуска команд оболочки с использованием java или с помощью jni.Должны ли команды Android Shell работать с Java или Jni

Мне было интересно, если более эффективно запускать команды оболочки на одном или другом.

Java

runtime.exec("su"); 

JNI

system("su"); 

Хотя я слышал, что JNI не принимает несколько команд, которые могут быть шагом назад.

ответ

2

Механизм под Runtime.exec() в родной fork/exec который является более распространенным и безопасным способом, чтобы выполнить команду.

system() в jni использовать текущую оболочку для интерпретации команды.

Кроме того, вы можете использовать fork/exec в jni для выполнения команды.

Для сравнения этих двух способов см. here.

Наконец, трудно сказать, какой из них более эффективен, оба из них должны создать новый процесс для обработки исполнения.

Смежные вопросы