pure-python-adb 纯 Python 实现的 Android 调试桥使用指南
pure-python-adb 是一个完全用 Python 编写的 Android 调试桥客户端,为开发者和测试人员提供了无需 Java 环境的 ADB 功能集成方案。这个项目完整复现了传统 ADB 工具的核心能力,同时带来了 Python 生态的灵活性和易用性。
快速上手指南
环境准备与安装
首先确保你的系统已安装 Python 3.6 或更高版本,然后通过以下任一方式安装:
pure-python-adb 是基于 Python 实现的 Android 调试桥(ADB)客户端库。它无需 Java 环境即可集成 ADB 功能,支持设备连接、Shell 命令执行、文件传输、APK 安装及 UI 自动化测试。项目采用模块化设计,提供异步操作支持和插件扩展,适用于设备监控、自动化测试及应用部署等场景。通过 pip 可快速安装,方便开发者在 Python 项目中调用 Android 设备管理能力。
pure-python-adb 是一个完全用 Python 编写的 Android 调试桥客户端,为开发者和测试人员提供了无需 Java 环境的 ADB 功能集成方案。这个项目完整复现了传统 ADB 工具的核心能力,同时带来了 Python 生态的灵活性和易用性。
首先确保你的系统已安装 Python 3.6 或更高版本,然后通过以下任一方式安装:
方式一:pip 直接安装
pip install pure-python-adb
方式二:源码安装
git clone <repository_url>
cd pure-python-adb
pip install -r requirements.txt
python setup.py install
安装完成后,立即验证环境是否正常工作:
from ppadb.client import Client as AdbClient
# 连接到本地 ADB 服务器
client = AdbClient(host="127.0.0.1", port=5037)
# 获取服务器版本信息
version = client.version()
print(f"ADB 服务器版本:{version}")
# 列出所有连接的设备
devices = client.devices()
for device in devices:
print(f"设备:{device.serial}")
pure-python-adb 项目采用模块化设计,主要功能分布在以下目录结构中:
| 模块路径 | 功能描述 |
|---|---|
ppadb/client.py | 主客户端类,管理设备连接 |
ppadb/device.py | 设备操作接口,封装 shell 命令 |
ppadb/plugins/ | 扩展插件,提供电池统计、输入控制等高级功能 |
example/screencap.py | 屏幕截图示例代码 |
传统 ADB 命令行工具通过 127.0.0.1:5037 端口与 ADB 服务器通信,服务器再通过 USB 或网络连接到 Android 设备的 ADB 守护进程。
pure-python-adb 采用相同的通信协议,但完全用 Python 实现客户端功能,无需依赖 Java 环境。
from ppadb.client import Client as AdbClient
client = AdbClient()
devices = client.devices()
if devices:
device = devices[0]
# 获取设备信息
print(f"设备型号:{device.shell('getprop ro.product.model')}")
print(f"Android 版本:{device.shell('getprop ro.build.version.release')}")
print(f"设备状态:{device.get_state()}")
基于项目中的示例代码,我们可以实现文件推送功能:
# 推送文件到设备
device.push("./local_file.txt", "/sdcard/remote_file.txt")
# 从设备拉取文件
device.pull("/sdcard/device_file.txt", "./local_copy.txt")
# 安装 APK 文件
device.install("app-debug.apk")
# 启动应用
device.shell("am start -n com.example.app/.MainActivity")
# 执行 UI 自动化
device.shell("input tap 500 800") # 模拟点击
device.shell("input text 'hello'") # 模拟输入文本
项目提供了完整的异步实现,适用于高并发场景:
from ppadb.client_async import Client as AsyncAdbClient
import asyncio
async def async_device_operations():
client = AsyncAdbClient()
devices = await client.devices()
if devices:
device = devices[0]
result = await device.shell("echo 'async operation'")
print(result)
利用内置插件实现高级监控功能:
from ppadb.plugins.device import batterystats
# 获取电池统计信息
stats = device.batterystats()
print(f"电池电量:{stats.get_battery_level()}%")
通过 pure-python-adb,你可以轻松将 Android 设备管理功能集成到 Python 项目中,无论是自动化测试、设备监控还是应用部署,都能获得原生 Python 生态的便利。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online