java用adb传指定文件到mumu模拟器的指定路径

请注意,这里使用了exec交互,这样有好处。
使用mumu模拟器遇到的第一个问题:
adb devices
查询不到设备,为什么呢,官方给了说明,使用 adb connect 127.0.0.1:7555 才可以
那么问题来了如果我们直接执行
adb connect 127.0.0.1:7555 以后再执行 adb push C:\Users\xiaobai\Desktop\zjy.db /storage/emulated/0/xxzhglpt/wjk 再cmd中是没有问题的,因为再cmd中相当于是一个进程。
当我们再java代码中运行时,相当于打开了两个cmd,一个运行 adb connect 127.0.0.1:7555 ,一个运行
adb push C:\Users\xiaobai\Desktop\zjy.db 这样时不行的。他们两个必须关联起来。
所以用了以下的命令,下面时关联的。

package com.xiaobai.rainbowknowledgepay.until;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ADBCommand {
    public static void main(String[] args) {
        String connectCommand = "adb connect 127.0.0.1:7555";
        String pushCommand = "adb push C:\\Users\\xiaobai\\Desktop\\zjy.db /storage/emulated/0/xxzhglpt/wjk";

        String connectResult = executeCommand(connectCommand);
        System.out.println("连接模拟器结果:" + connectResult);

        String pushResult = executeCommand(pushCommand);
        System.out.println("推送文件结果:" + pushResult);
    }
    private static String executeCommand(String command) {
        StringBuilder result = new StringBuilder();

        try {
            Process process = Runtime.getRuntime().exec(command);
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                result.append(line).append("\n");
            }

            // 读取标准错误流
            BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            String errorLine;
            while ((errorLine = errorReader.readLine()) != null) {
                result.append(errorLine).append("\n");
            }

            reader.close();
            errorReader.close();

            process.waitFor();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

        return result.toString();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值