Qt5开发安卓调试工具(开发安卓调试工具(adb input以及以及adb shell screencap应用)应用)
Qt5开发安卓调试工具(开发安卓调试工具(adb shell input以及以及adb shell screencap应用)应用)
文章目录文章目录Qt5开发安卓调试工具(开发安卓调试工具(adb shell input以及以及adb shell screencap应用)一、前言二、技术点三、技术点实现及坑点记录应用)一、前言二、技术点三、技术点实现及坑点记录1、、QProcess执行命令执行命令2、、adb shell input发送安发送安
卓控制命令卓控制命令3、、adb shell sreencap截取屏幕截取屏幕4、、Qlabel显示图片显示图片5、坑点四、最后、坑点四、最后
一、前言一、前言
最新的物联网项目之前说过是安卓机顶盒的软探针项目,目前项目前期基本开发完了,这个时候就涉及到维护问题了,维护的时候由于是远程维护,不可能有一点问题就到出差去开
发,而且最近疫情限制到现场都不现实,然后我们就考虑远程维护的问题,之前远程通过TeamViewer连接电脑然后视频去让远程的人操作电视机顶盒,但是这个很浪费人力资源,
而且远程的人需要一直待命,这个就很麻烦。我们同事间讨论的时候就说他之前由于没有多余的遥控器发现了一个adb shell input的命令,可以通过adb shell命令行状态下控制机顶
盒,上下左右啥的基本遥控器能做的都能做到,然后再加上adb shell screencap的Android屏幕截图功能,一个控制机顶盒,一个显示当前位置,这样配合着使用就能做到简单的无人
值守可视化操作机顶盒了。考虑到安卓、pyQt程序执行时需要安装环境,最后综合考虑使用Qt来实现这个调试软件。
二、技术点二、技术点
前期查阅资料准备了下,QProcess实现执行adb等命令然后显示执行结果,简单的QPushbutton来模拟常用的遥控器按键,当按下按钮后调用adb shell input进行机顶盒控制,执行成
功后再调用adb shell sreencap来抓取屏幕的截图,最后利用Qlabel显示截图即可,思路简单清晰。
1、QProcess执行命令
2、adb shell input发送安卓控制命令
3、adb shell sreencap截取屏幕
4、Qlabel显示图片
三、技术点实现及坑点记录三、技术点实现及坑点记录
1、、QProcess执行命令执行命令
我们可以先用Qt助手了解一下QProcess类:
和串口操作类似,支持异步和同步方式,因为我们不需要执行长时间的命令,所以最后打算这里先使用同步阻塞式读写操作。
找到这个简单的例子:
然后,我们在windows下可以使用cmd执行指令,这个是个简单的例子:
QProcess pCmd;
//cmmand通过传参传进来
pCmd.start("cmd", QStringList()<<"/c"<textBrowser_DebugInfo->append(strTemp);
return true;
还有一些其它的用法,比如我们像调用写好的python、shell、bat脚本或者调用其它程序等,则可以按照最上面的示例去尝试: