簡體   English   中英

如何在Android設備的Mac OS上以Java編程方式執行ADB命令

[英]How to execute ADB commands programmatically in Java on Mac OS for Android device

大家! 我正在嘗試使用Appium,java,TestNG為真實設備上的Android應用程序為我的測試框架編寫偵聽器。 我想在測試中使用一些ADB命令,例如獲取屏幕截圖,錄制視頻,獲取logcat文件等

所以我有:Mac OS Android設備Xiaomi,具有Android 7.0版ADB ANdroid SDK Java

如果我在終端中使用命令:adb exec-out screencap -p> /Users/dmytro/Documents/other/1.png-屏幕截圖已成功保存在適當的文件夾中。 在終端和我的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設備上找到。

我沒有收到任何錯誤,看起來一切正常。 請參閱調試模式的屏幕截圖。 screenShot從調試模式

實際上,某些adb命令在Windows OS上運行良好,但在Mac上卻不能。

請幫我用Java代碼執行ADB命令。

adb命令成功執行,但未按預期重定向到文件。 使用Java Runtime.getRuntime().exec() ,用於重定向的>無效。 可以從以下StackOverflow問題中找到對此的解釋: 運行時的exec()方法未重定向輸出

adb logcat本身也具有-f標志,該標志adb logcat該過程寫入文件,如本討論所述:以編程方式捕獲LogCat還是將其導出到文件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM