2017-03-02 92 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);