ADB实战指南:解锁安卓装备的高级操纵

打印 上一主题 下一主题

主题 872|帖子 872|积分 2616

本日咱们来聊聊一个超等强盛的安卓测试及调试工具——ADB(Android Debug Bridge)。ADB 就像是安卓装备和电脑之间的桥梁,通过下令行,可以轻松地与手机举行各种操纵。无论是安装应用、调试程序,还是抓取日志,ADB 都能搞定。
ADB 初印象

首先,咱们得把 ADB 安装好。如果你已经安装了 Android Studio,那 ADB 就已经包含在内了,通常位于 sdk/platform-tools 目录下。如果还没有,那就得单独下载安装了。
安装好后,咱们得确认一下电脑可否辨认到安卓装备。打开下令行,输入 adb devices,如果体现你的装备信息,那就阐明连接成功了!
  1. # 检查设备连接
  2. adb devices
复制代码
小贴士:如果装备没连接上,记得查抄一下 USB 调试开关是否打开(在手机的开发者选项中),还有数据线是否正常。
安装与卸载应用

ADB 的一大功能就是可以方便地安装和卸载应用。
安装应用

咱们可以用 adb install 下令来安装 APK 文件。假设你有一个 example.apk 文件,输入以下下令:
  1. # 安装应用
  2. adb install example.apk
复制代码
如果安装成功,会体现 Success。
卸载应用

卸载应用就更简单了,用 adb uninstall 下令加上应用的包名就行。好比要卸载包名为 com.example.myapp 的应用:
  1. # 卸载应用
  2. adb uninstall com.example.myapp
复制代码
小贴士:记得,卸载下令用的是应用的包名,而不是 APK 文件名哦!
查看日志

调试安卓应用时,查看日志可是个必备技能。ADB 提供了 adb logcat 下令,可以实时查看安卓装备的日志输出。
  1. # 查看日志
  2. adb logcat
复制代码
日志信息会不停地滚动输出,咱们可以通过关键词来过滤。好比,只想看和某个应用相干的日志,可以加上应用包名作为过滤条件:
  1. # 过滤日志
  2. adb logcat | grep "com.example.myapp"
复制代码
小贴士:logcat 输出的日志信息非常丰富,咱们可以根据需要选择不同的日志级别(如 error、warn、info 等)举行查看。
模拟按键和触摸

ADB 还能模拟按键和触摸操纵,这在主动化测试中可是个神器。
模拟按键

好比,想模拟按下电源键,可以用 adb shell input keyevent 下令加上按键码。电源键的按键码是 26:
  1. # 模拟按下电源键
  2. adb shell input keyevent 26
复制代码
其他按键码可以在官方文档里查到,好比返回键是 4,音量加是 24,音量减是 25。
模拟触摸

模拟触摸操纵轻微复杂点,得指定坐标。好比,想在屏幕 (500, 1000) 的位置模拟点击一下:
  1. # 模拟触摸点击
  2. adb shell input tap 500 1000
复制代码
还可以模拟滑动操纵,好比从 (100, 200) 滑动到 (400, 800):
  1. # 模拟滑动操作
  2. adb shell input swipe 100 200 400 800
复制代码
小贴士:模拟触摸操纵的时间,记得先确定一下屏幕的分辨率,这样才气更准确地指定坐标哦!
截图与录屏

ADB 还能方便地截图和录屏,这在测试或演示的时间特别有效。
截图

截图很简单,用 adb shell screencap 下令就行。不过,这个下令默认会把截图保存到装备上,咱们还得把它拉取到电脑上。以是,更常用的方法是直接用 adb exec-out 下令结合 screencap -p,然后重定向输出到一个文件:
  1. # 截图
  2. adb exec-out screencap -p > screenshot.png
复制代码
这样,截图就直接保存在当前目录的 screenshot.png 文件中了。
录屏

录屏轻微复杂点,得用到 adb shell screenrecord 下令。好比,想录制一个 30 秒的视频,分辨率设置为 720p:
  1. # 录屏
  2. adb shell screenrecord /sdcard/screen_record.mp4 --time-limit 30 --size 720x1280
复制代码
录制完成后,同样得把视频文件拉取到电脑上:
  1. # 拉取录屏文件
  2. adb pull /sdcard/screen_record.mp4
复制代码
小贴士:录屏的时间,注意一下装备的存储空间,别录着录着空间满了。
访问文件体系

通过 ADB,咱们还可以方便地访问安卓装备的文件体系,举行文件的上传和下载。
上传文件

用 adb push 下令可以把电脑上的文件上传到装备上。好比,想把 testfile.txt 上传到装备的 /sdcard/ 目录下:
  1. # 上传文件
  2. adb push testfile.txt /sdcard/
复制代码
下载文件

下载文件用 adb pull 下令。好比,想把装备上的 /sdcard/testfile.txt 下载到当前目录:
  1. # 下载文件
  2. adb pull /sdcard/testfile.txt
复制代码
小贴士:上传和下载文件的时间,注意一下路径和文件名,别搞错了。
实用脚本示例

末了,给大家分享一个实用的脚本示例,用 Python 结合 ADB 实现一个简单的主动化测试。这个脚本会模拟打开某个应用,截图保存,然后关闭应用。
  1. import os
  2. import time
  3. # 定义设备命令
  4. def run_adb_command(command):
  5.     return os.popen(command).read().strip()
  6. # 打开应用
  7. def open_app(package_name):
  8.     run_adb_command(f"adb shell monkey -p {package_name} -c android.intent.category.LAUNCHER 1")
  9. # 截图
  10. def take_screenshot(filename):
  11.     run_adb_command(f"adb exec-out screencap -p > {filename}")
  12. # 关闭应用
  13. def close_app(package_name):
  14.     run_adb_command(f"adb shell am force-stop {package_name}")
  15. # 主函数
  16. def main():
  17.     package_name = "com.example.myapp"  # 替换为目标应用的包名
  18.     screenshot_filename = "app_screenshot.png"
  19.     print("打开应用...")
  20.     open_app(package_name)
  21.     time.sleep(5)  # 等待应用打开
  22.     print("截图保存...")
  23.     take_screenshot(screenshot_filename)
  24.     print("关闭应用...")
  25.     close_app(package_name)
  26.     print(f"截图已保存为 {screenshot_filename}")
  27. if __name__ == "__main__":
  28.     main()
复制代码
小贴士:这个脚本只是个简单的示例,现实应用中可能需要更复杂的逻辑和非常处置处罚。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表