在Android中的新进程中运行命令行工具

时间:2013-02-23 17:31:10

标签: c# java android xamarin.android

我们有一个unix命令行工具,我们需要从Android应用程序运行。没有一个库可以实现我们正在寻找的相同功能。

在Android应用中捆绑和执行此工具的正确方法是什么?它是我们需要作为新进程执行的单个文件。我们希望避免任何私有API等。

注意:如果这是最佳的,我们可以使用服务或提取到某个目录。我们正在使用Mono for Android(Xamarin.Android),但我们可以使用Java示例。

2 个答案:

答案 0 :(得分:2)

希望这会有所帮助......

try{
    Process process;            
    process = Runtime.getRuntime().exec("top -n 1 -d 1");
    BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));

} catch (InterruptedException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}

干杯!

答案 1 :(得分:0)

为了在新进程上运行任何内容,您只需在清单中定义它。在您的情况下,您可能希望将其设置为服务:

http://developer.android.com/guide/topics/manifest/service-element.html

(参见流程属性)。

但是,我认为您不需要这样的东西,而且您可以使用新的线程,它可能会在您的服务上运行,并且可能需要该服务作为前台服务,具体取决于您的需求。

为了运行你想要的文件(我从来没有在android上做过),你可能需要将文件复制到某处(最好是用于你的app的内部存储),然后到达并运行它就像在unix / linux的终端中一样,使用Runtime.getRuntime()。exec(...