首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Mac OS for Android设备上的Java中以编程方式执行ADB命令

如何在Mac OS for Android设备上的Java中以编程方式执行ADB命令
EN

Stack Overflow用户
提问于 2018-05-31 17:00:48
回答 1查看 1.8K关注 0票数 0

所有人!我正在尝试为我的测试框架编写侦听器,使用Appium,java,TestNG for Android应用程序在真实设备上。我想在我的测试中使用一些ADB命令,例如截图、录制视频、获取logcat文件等。

所以我有: Mac OS安卓设备小米,用安卓7.0版ADB Android SDK java

如果我使用终端中的命令: adb exec-out screencap -p > /Users/dmytro/Documents/other/1.png - screenshot成功保存在适当的文件夹中。手动输入终端和我的IntelijIDEA终端中的其他命令都可以很好地工作。

如果我通过使用Runtime类以编程方式使用相同的命令:

Runtime.getRuntime().exec(adb exec-out screencap -p > /Users/dmytro/Documents/other/1.png"); // Save screenshot to Mac machine

Runtime.getRuntime().exec("adb logcat > /Users/dmytromynziak/Documents/other/log.txt"); //Save logical file

Runtime.getRuntime().exec("db exec-out screencap -p > /sdcard/1.png"); // Save screenshot to scared of android device

它不工作,屏幕截图没有保存到Mac机器上,甚至在android设备上也找不到。

没有我收到的任何错误,看起来一切正常。查看调试模式的屏幕截图。

实际上,一些adb命令在WIndows OS上工作得很好,但在Mac上就不行了。

请帮我用java代码执行ADB命令。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 17:55:08

adb命令成功执行,但未按预期重定向至文件。使用Java Runtime.getRuntime().exec(),重定向的>将不起作用。可以从这个StackOverflow问题中找到对此的解释:Runtime's exec() method is not redirecting the output

adb logcat本身也有-f标志,它告诉进程写入文件,如下面的讨论中所述:Catch LogCat programmatically or export it to file?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档