[英]How to enable USB debugging on Android Virtual Device (AVD) from ADB commands and by Java program?
[英]Installing apk on android device via ADB with Java program on Linux
我试图通过Java程序在Java设备上将Java内置文件管理器的路径传递到ADB,以在Android设备上安装apk。 执行代码后,将永远不会安装使用文件管理器选择的apk。
这是代码:
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"APK Files", "apk");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(getParent());
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You choose to open this file: " + chooser.getSelectedFile().getName());
File file = new File("");
System.out.println(file.getAbsolutePath().toString());
try {
Process p1 = Runtime.getRuntime().exec("adb kill-server"); //for killing old adb instance
Process p2 = Runtime.getRuntime().exec("adb start-server");
Process p3 = Runtime.getRuntime().exec("adb install \"" + file.getAbsolutePath() + "\"");
p3.waitFor();
Process p4 = Runtime.getRuntime().exec("adb kill-server");
} catch (Exception e1) {
System.err.println(e1);
}
以下代码应安装apk:
Process p3 = Runtime.getRuntime().exec("adb install \"" + file.getAbsolutePath() + "\"");
换线
File file = new File("");
至
File file = chooser.getSelectedFile();
另外,别忘了检查
if(file.exists()) {
验证文件。
我自己弄清楚了,下面是代码:
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("APK Files", "apk");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(getParent());
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
String filename = chooser.getSelectedFile().getName();
try {
String[] commands = new String[3];
commands[0] = "adb";
commands[1] = "install";
commands[2] = file.getAbsolutePath();
Process p1 = Runtime.getRuntime().exec(commands, null);
p1.waitFor();
} catch (Exception e1) {
System.err.println(e1);
}
}
我花了一个星期的时间来完成与窗口系统相同的任务,我找到了一个简单的解决方案来完成此任务,这是我在项目中应用的以下一些步骤
第一步是从此URL下载ADB工具(称为平台工具),并将下载的文件解压缩到您的工作区目录中。
打开将平台工具下载到的目录
如果您不知道如何创建批处理文件,请创建批处理文件,请按照以下步骤操作
一世。 打开文本编辑器记事本或记事本++
ii。 将其另存为xyz.bat,然后窗口系统会将其视为批处理文件
在文本编辑器中打开批处理文件,然后粘贴以下命令
adb install "b2c.apk" && adb shell am start -n com.xyz.app/com.xyz.b2c.Activity.SplashScreen**
(这里有两个ADB命令,用&符号隔开。第一个命令用于在Android设备中安装APK,第二个命令用于打开应用程序)
一世。 b2c.apk是我要安装在手机上的android APK
ii。 com.xyz.app是一个Android应用程序包名称,com.xyz.b2c.Activity.SplashScreen是一个我要打开的活动包名称
保存文件并关闭它,然后使用平台工具复制该文件并将其粘贴到目录中。 并且不要忘记将APK文件也放置在此目录中
cd
进入platform目录,并运行以下Java程序:
import java.io.DataInputStream;
import java.io.File;
import java.io.InputStreamReader;
import java.util.Scanner;
public class TestClass {
static int progress = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String ls_str;
Process p = Runtime.getRuntime().exec("cmd /c xyz.bat", null, new File("E:\\Arun_Java_Workspace\\TestApplication\\platform-tools"));
DataInputStream ls_in = new DataInputStream(
p.getInputStream());
while ((ls_str = ls_in.readLine()) != null) {
System.out.println(ls_str);
}
} catch (Exception e) {
System.out.println("Exception e: " + e);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.