在android应用程序中执行linux命令而不是使用java替代命令有什么优点/缺点吗?
例如:
File file = new File("file.txt");
file.delete();
与
rm file.txt
优点
没有,真的,或者至少在一般情况下没有。
如果您想调用一个不公开编程接口的单独且复杂的程序,我可以认为它很有用。然而,在这种情况下,我仍然会通过ProcessBuilder
调用,而不是使用系统执行
缺点
-
不安全
如果它不是你的程序,你就不知道它做什么。它可能被篡改,并且可能需要使用不同的权限和特权。
-
不稳定
如果它不是你的程序,你真的不知道它是否存在,是否永远存在。
-
浪费
它毫无理由地产生了一个额外的过程。
-
不透明
您更难监视长时间运行的任务并检查返回代码(而且这些代码的约定在未来可能会再次发生变化,这将使我们回到不安全和非稳定)。