【WinForm】Android手机群控工具-桌面程序开发实现

编程入门 行业动态 更新时间:2024-10-28 13:28:09

如何将手下多个Android手机统一管理起来呢,这里是用通过终端输入adb命令来实现控制多个手机的,具体怎么做,接下来给讲一讲。

adb工具

首先,需要准备一套工具,以下是adb工具套件,是在Android SDK开发包中复制出来的

注意,三个缺一不可,dll是adb依赖的文件
没有的话,可以点此前往网上搜adb工具包

打开手机的设置→开发者选项,开启USB调试功能,然后通过数据线连接上电脑

连接电脑会弹出连接提示的,没有提示的话,你的数据线可能是仅充电用的,
手机上没有找到开发者选项,尝试点此前往可找到解决方案,
个别手机可能需要选择文件传输,才能进入USB调试

连接成功的话,如下图所示,手机通知栏显示“已连接USB调试”那就是正常的

命令控制

接下来,在电脑上当前存放adb.exe的文件夹根目录下,点鼠标右键,

再点击Open in Windows Terminal打开终端,如下图所示,试试输入命令

Windows 11 系统 CMD窗口 输入的命令如 ./adb devices…,相比旧版系统,新版的前面需要加./才行,
列表出现的如 “设备序列号 device” 是表示可连接的,
若为其它如有offline的话,表示还不能连接,可能要先在手机上的弹窗点允许调试

这里列出一下,常用到的adb命令

命令说明
adb devices显示可连接的USB设备列表
adb shell wm size获取屏幕分辨率
adb shell mkdir /sdcard/文件夹在手机内部存储中创建一个文件夹
adb shell screencap -p /sdcard/文件夹/文件名屏幕截图,生成png图片存到指定位置
adb pull 手机存储文件位置 电脑的文件夹位置导出文件,把手机的文件导出到电脑上
adb shell rm -r 手机存储文件位置删除手机的文件
adb shell input tap 10 20模拟点击屏幕位置在坐标 (10,20)
adb shell input keyevent 4模拟点击按键返回,举例:
4返回;3主页;82菜单;24音量+;25音量-;26电源;
adb shell input swipe 10 10 10 100 600模拟滑动,其中5个数字分别表示:
开始点坐标X1和Y1,结束点坐标X2和Y2,还有一个是滑动时间ms单位
adb start-server启动adb服务
adb kill-server关闭adb服务
adb install -r test.apk安装(覆盖)test.apk应用
adb uninstall test.apk卸载test.apk应用
adb …还有更多…

在终端输入以上命令试试,熟能生巧,就能记下来

如果只想精确控制其中的一个设备,就需要在adb 后面加一段命令-s <设备序列号>

例如这样,获取序列号为AB42342425255 的设备的屏幕分辨率

adb -s AB42342425255 shell wm size

程序控制

操作输入命令多了是多不方便,

如果你会用Visual Studio开发工具编写一个WinForm项目,就可以开发一个桌面程序来,运行效果如下图这样,

简单操作一下,就能控制连接的手机,可在屏幕点击和滑动操作,
如果手里还有多余的闲置Android手机或平板电脑,都可以通过它来控制

桌面程序是使用C#编程语言编写的,通过Process对象调用外部adb.exe程序来实现,主要的调用代码如下

//创建一个调用外部adb的进程
var p = new Process();
p.StartInfo.FileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "adb.exe");
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//执行adb命令
adbProcess.StartInfo.Arguments = common;
adbProcess.Start();
var result = adbProcess.StandardOutput.ReadToEnd();
if (string.IsNullOrEmpty(result))
{
    result = adbProcess.StandardError.ReadToEnd();
}
adbProcess.WaitForExit();

其中common是传入的命令,如"devices",
其中result是输出命令,可以看到执行后返回的结果,

像通过终端命令的操作一样,就是把常用的命令操作的方法一起封装好,

自己写到桌面程序里,这样用起来就会轻松一些。

💡注意不用时,已开启的USB调试,最好关闭,以防手机数据被盗或丢失。

关于桌面程序具体实现的可以看下项目源码,点击这里 ,在资源一栏下可找到(可能在手机上看不到,就用电脑浏览器试试)

更多推荐

【WinForm】Android手机群控工具-桌面程序开发实现

本文发布于:2023-10-16 22:14:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1498884.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:程序开发   桌面   工具   群控   手机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!