我们都有看过手机助手软件,当手机插到电脑上时,电脑上就可以看到手机中的文件夹。还能完成文件的拷贝,安装等功能。现在我们就用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