我们都有看过手机助手软件,当手机插到电脑上时,电脑上就可以看到手机中的文件夹。还能完成文件的拷贝,安装等功能。现在我们就用C#,通过 adb + usb 实现简单的网络通讯功能。 调用adb有几种方式:一种就是通过cmd命令行来调用。另外一种就是直接调用adb工具。cmd命令调用的例子较多,本例就使用直接通过adb的方式来实现。

准备工作


下载以下依赖文件:

- adb.exe
- AdbWinApi.dll
- AdbWinUsbApi.dll

核心代码


        private string RunAdbCmd(string arg)
        {
            var p = new Process(); //实例一个Process类,启动一个独立进程
            p.StartInfo.FileName = "adb.exe"; //设定程序名
            p.StartInfo.Arguments = arg;
            p.StartInfo.UseShellExecute = false; //关闭Shell的使用
            p.StartInfo.RedirectStandardInput = true; //重定向标准输入
            p.StartInfo.RedirectStandardOutput = true; //重定向标准输出
            p.StartInfo.RedirectStandardError = true; //重定向错误输出
            p.StartInfo.CreateNoWindow = true; // 设置不显示窗口
            p.StartInfo.ErrorDialog = false;
            p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            p.Start();
            return p.StandardOutput.ReadToEnd();
        }

使用方法如:


var result = RunAdbCmd("devices");
    result = RunAdbCmd($"-s {deviceId} forward tcp:11100 tcp:10089");
    result = RunAdbCmd("shel netstat");

注意:

  • 调用adb