2013-02-23 58 views
0

我們有一個unix命令行工具,我們需要從Android應用運行。沒有一個存在的庫實現了我們正在尋找的相同功能。在Android的新進程中運行命令行工具

在Android應用程序中綁定和執行此工具的正確方法是什麼?這是我們需要執行的一個新文件。我們希望避免任何私人API等。

注意:如果這是最佳的,我們可以使用服務或解壓縮到某個目錄。我們正在使用Mono for Android(Xamarin.Android),但我們對Java示例很好。

+1

請記住,您的應用程序會在其他CPU架構上崩潰,除非您打算捆綁N個此工具副本並自行檢測你正在運行的CPU架構,不可否認,絕大多數Android設備都由ARM提供支持,但Intel正在推動x86,而MIPS聯盟正試圖說服制造商也使用他們的芯片。 – CommonsWare 2013-02-23 17:40:11

+0

謝謝,我相信我們只是針對ARM和x86。我們只會確保限制c應用商店中的直立設備。 – jonathanpeppers 2013-02-25 13:24:52

回答

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(); 
} 

乾杯!

0

爲了在新進程上運行任何內容,只需要在清單中定義它。在你的情況下,你可能想要設置它的服務:

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

(請參閱進程屬性)。

但是,我認爲你不需要這樣的事情,你可以使用一個新的線程,它可能會運行在你的服務上,並可能需要服務作爲前臺服務,這取決於你的需要。

爲了運行你想要的文件(我從來沒有在android上完成它),你可能需要將文件複製到某處(最好是用於你的應用的內部存儲器),然後到達它並運行它就像在unix/linux的終端中一樣,使用Runtime.getRuntime()。exec(...