分享免费的编程资源和教程

网站首页 > 技术教程 正文

用Python与ADB解锁Android自动化之路

goqiw 2024-11-05 10:52:07 技术教程 64 ℃ 0 评论

这里是一个使用 Python 和 adb 命令来实现自动化控制 Android 设备的基本脚本示例。此脚本将展示如何在 Python 中调用 adb 命令,以及一些常见的自动化操作,比如安装应用、启动应用、截图等等。

1. 设置环境

首先,请确保你已经安装了 ADB 并将其添加到系统的环境变量中,以便能够从命令行访问 adb 命令。

2. 使用 Python 的 subprocess模块执行 ADB 命令

import subprocess
# 定义一个通用的 ADB 命令执行函数
def adb_command(command):
result = subprocess.run(f"adb {command}", shell=True, capture_output=True, text=True)
if result.returncode == 0:
print(f"Command '{command}' executed successfully.")
return result.stdout
else:
print(f"Error executing command '{command}': {result.stderr}")
return None
# 连接设备
def connect_device(device_ip):
adb_command(f"connect {device_ip}")
# 安装应用
def install_app(apk_path):
adb_command(f"install {apk_path}")
# 启动应用
def start_app(package_name, activity_name):
adb_command(f"shell am start -n {package_name}/{activity_name}")
# 卸载应用
def uninstall_app(package_name):
adb_command(f"uninstall {package_name}")
# 截图
def take_screenshot(output_path):
adb_command(f"shell screencap -p /sdcard/screenshot.png")
adb_command(f"pull /sdcard/screenshot.png {output_path}")
adb_command("shell rm /sdcard/screenshot.png")
print(f"Screenshot saved to {output_path}")
# 重启设备
def reboot_device():
adb_command("reboot")
# 示例使用
if __name__ == "__main__":
device_ip = "192.168.1.101:5555" # 使用你的设备 IP
apk_path = "/path/to/your/app.apk" # 使用你要安装的 APK 路径
output_screenshot_path = "screenshot.png"
# 连接设备
connect_device(device_ip)
# 安装应用
install_app(apk_path)
# 启动应用
start_app("com.example.app", "com.example.app.MainActivity")
# 截图
take_screenshot(output_screenshot_path)
# 重启设备
reboot_device()

3. 脚本说明

  • adb_command: 这是一个通用的函数,用来执行任何 ADB 命令,并捕获输出。
  • connect_device: 用于连接到 Android 设备(通过 IP 地址)。
  • install_app: 安装指定的 APK 文件。
  • start_app: 启动应用,需要提供包名和活动名称。
  • uninstall_app: 卸载指定的应用。
  • take_screenshot: 截图并将其保存到指定的路径。
  • reboot_device: 重启 Android 设备。

注意事项

  1. adb 工具需要 Android 设备开启开发者选项和 USB 调试。
  2. 如果设备通过无线连接(使用 IP 地址),请确保设备和电脑在同一个网络下,并且设备支持 adb 无线调试。
  3. 使用实际的包名和活动名称(可以通过 adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' 获取当前正在运行的活动)。

这个脚本可以根据需求添加其他 ADB 命令和功能,支持多种自动化操作。




Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表