ITADN
ysbing/YADB
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Language: English | 中文简体

YADB - ADB 功能增强工具

YADB 是一款扩展原生 ADB (Android Debug Bridge) 能力的实用工具。它解决了文本输入、截图捕获和 UI 布局提取等方面的局限性,提供更高效、更精确的操作。


功能

中文文本输入

修复了 adb shell input text 无法输入中文字符的问题。支持输入任意文本字符串。

adb push yadb /data/local/tmp
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -keyboard 'Hello, World'"

读取剪贴板

从设备读取当前剪贴板内容。

adb push yadb /data/local/tmp
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -readClipboard"

写入剪贴板

将指定文本写入设备剪贴板。

adb push yadb /data/local/tmp
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -writeClipboard TextContent"

强制截图

捕获当前屏幕内容,绕过任何应用级别的截图限制。

adb push yadb /data/local/tmp
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -screenshot"

高效布局转储

uiautomator dump 的替代方案,即使在 uiautomator 无法获取 UI 元素的页面上,也能实现布局提取。

adb push yadb /data/local/tmp
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -layout"

长按模拟

模拟屏幕上的长按触摸事件,适用于自动化测试场景。

adb push yadb /data/local/tmp
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -touch 500 500 2000"

长按并拖拽

适用于需要长按某个元素以选中它,然后将其拖拽到新位置的场景。

# Args: startX startY endX endY pressDuration(ms) dragDuration(ms)
adb push yadb /data/local/tmp 
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -longPressDrag 500 500 500 1000 2000 1000"

无惯性滑动

原生 input swipe 的替代方案。它使用减速插值来消除列表滚动惯性,精确停止在手指抬起的位置。

# Args: startX startY endX endY duration(ms)
adb push yadb /data/local/tmp 
adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -swipe 100 1000 100 500 1000"

双指捏合

模拟双指捏合(缩小)或张开(放大)操作。

# Args: centerX centerY startDistance(px) endDistance(px) duration(ms)
# Zoom Out (Pinch In): Distance from 800px to 200px
adb push yadb /data/local/tmp && adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -pinch 540 960 800 200 500"

# Zoom In (Pinch Out): Distance from 200px to 800px
adb push yadb /data/local/tmp && adb shell "app_process -Djava.class.path=/data/local/tmp/yadb /data/local/tmp com.ysbing.yadb.Main -pinch 540 960 200 800 500"

许可证

本项目采用 LGPLv3 许可证 授权。