用python写一个通过ADB手机抓取log的工具
时间: 2024-10-01 16:05:15 浏览: 57
在Python中使用ADB(Android Debug Bridge)抓取设备日志(Logcat)是一项常见的调试任务。首先确保你已经安装了adb并配置好了环境变量。以下是一个简单的Python脚本,使用`subprocess`模块来执行ADB命令并捕获输出:
```python
import subprocess
def get_device_log(device=None):
# 如果没有指定设备,获取所有设备的日志
if not device:
devices = subprocess.check_output(['adb', 'devices']).decode().split('\n')
if len(devices) == 0 or devices[0].strip() == '':
print("No connected Android devices found.")
return
device = devices[0].split()[0]
# 执行adb logcat命令,redirecting output to a string
adb_cmd = f'adb -s {device} logcat'
try:
output = subprocess.check_output(adb_cmd, shell=True, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
print(f"Failed to fetch logs from device '{device}'. Error: {e.output.decode('utf-8')}")
return None
return output.decode()
# 示例用法
logs = get_device_log('your_device_name_or_id')
if logs:
print(logs)
else:
print("No logs fetched.")
```
在这个脚本中,你需要替换`'your_device_name_or_id'`为你的目标设备的名称或ID。这个脚本会打印出设备的日志信息,如果抓取失败,它会显示错误消息。
阅读全文