2017-03-02 94 views
1

我目前正在嘗試在Netbeans中編寫一個程序,該程序將允許我單擊幾個按鈕來執行不同的操作。創建一個java程序來運行ADB命令

首先,我需要一個按鈕上Smartwatch可複製某些位置上的文件到一個新目錄在同一臺設備上(SD卡)

那麼我希望寫一個腳本/代碼以提取從SD卡中的數據目錄到主機,最後一步是查看Windows PC上的.db文件。

簡而言之,我需要製作一個程序來將DB文件從一個位置複製到一個新目錄,然後我需要將它提取到它所插入的主機。

抱歉,如果這似乎有點脫節,但我正在尋找幫助編寫它作爲

如果您需要任何進一步的信息,請讓我知道。

編輯 -

我知道我需要使用 -

cat /data/data/com.google.android.gms/databases/node.db > /sdcard/node.db 

這將數據庫文件,我需要複製到一個地方,我可以用ADB從提取它。

其次我需要使用 -

Adb pull /sdcard/node db 

這將節點DB文件保存到SDK所在的目錄。

我只是不確定如何讓這個被包含在我的Java程序的ONCLICK按鈕中。

+1

我們需要看你的嘗試。 –

+0

我還沒有試圖用Java編寫它。 – Jhillips

+0

爲什麼用'cat'而不是'cp'來複制你的db文件?什麼能阻止你從你的java應用程序調用一個外部命令? – autra

回答

0

運行shell命令Basic代碼:

Process p = Runtime.getRuntime().exec("ls -l"); 
p.waitFor(); 

BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

String line = ""; 
while ((line = reader.readLine())!= null) { 
    System.out.println("line : " + line); 
} 

您也可以傳遞參數那樣:

Process p = Runtime.getRuntime().exec(new String[]{ "ls", "-l",}); 
0

您也可以嘗試使用Apache Commons Exec library。檢查教程here

String line = "calc.exe"; 
CommandLine cmdLine = CommandLine.parse(line); 
DefaultExecutor executor = new DefaultExecutor(); 
int exitValue = executor.execute(cmdLine);