全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

关于Python脚本中执行adb命令的方法

Python中执行ADB命令应使用subprocess模块,参数以列表形式传入、禁用shell=True、检查returncode或启用check=True、用Popen实现持续交互。

在Python脚本中执行ADB命令,核心是调用系统命令行工具,常用方式是 subprocess 模块,它比已弃用的 os.system 更安全、可控,能捕获输出、处理错误、传参灵活。

使用 subprocess.run 执行简单ADB命令

适合一次性命令,如查看设备、安装APK、截图等。推荐设置 shell=False(默认),避免shell注入风险;若需管道或重定向,再设为 True

  • 检查设备连接:subprocess.run(["adb", "devices"], capture_output=True, text=True)
  • 安装APK:subprocess.run(["adb", "install", "app.apk"])
  • 获取设备型号:result = subprocess.run(["adb", "shell", "getprop", "ro.product.model"], capture_output=True, text=True); print(result.stdout.strip())

处理ADB命令的返回值与错误

ADB执行失败时通常返回非0退出码,但不会自动抛异常。建议显式检查 returncode,或使用 check=True 让失败时触发 subprocess.CalledProcessError

  • 捕获并判断结果:result = subprocess.run([...]); if result.returncode != 0: print("ADB命令失败:", result.stderr)
  • 自动报错(简洁写法):subprocess.run(["adb", "reboot"], check=True)
  • 超时控制防卡死:subprocess.run(["adb", "shell", "ping -c 3 8.8.8.8"], timeout=10)

向ADB命令传递动态参数(如包名、文件路径)

避免字符串拼接(易出错且不安全),应将参数作为列表元素传入。路径含空格也不需额外处理,subprocess会自动转义。

  • 启动指定Activity:pkg = "com.example.app"; activity = ".MainActivity"; subprocess.run(["adb", "shell", "am", "start", "-n", f"{pkg}/{activity}"])
  • 推送文件到设备:local_path = "/path/with spaces/file.txt"; remote_path = "/sdcard/file.txt"; subprocess.run(["adb", "push", local_path, remote_path])
  • 注意:不要写成 f"adb shell am start -n {pkg}/{activity}" —— 这属于shell模式,有安全隐患且跨平台兼容差

进阶:持续交互式ADB会话(如logcat监听)

subprocess.Popen 启动长期进程,实时读取stdout流,适合抓日志、监听广播等场景。

  • 实时打印logcat:proc = subprocess.Popen(["adb", "logcat", "-v", "time"], stdout=subprocess.PIPE, text=True); for line in proc.stdout: print(line.strip())
  • 终止进程:proc.terminate()proc.kill()
  • 注意:确保编码一致(Android logcat默认UTF-8),Windows下可能需加 encoding="utf-8"

基本上就这些。只要记住用 subprocess、参数拆成列表、检查返回值、避免 shell=True 乱拼字符串,ADB 调用就能既稳定又安全。


# python  # android  # windows  # 编码  # app  # 工具  # ai  # win  # python脚本 


相关文章: 七夕网站制作视频,七夕大促活动怎么报名?  ,有什么在线背英语单词效率比较高的网站?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  自助网站制作软件,个人如何自助建网站?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  如何在Golang中使用replace替换模块_指定本地或远程路径  东莞专业制作网站的公司,东莞大学生网的网址是什么?  制作网站外包平台,自动化接单网站有哪些?  建站之星CMS五站合一模板配置与SEO优化指南  建站主机数据库如何配置才能提升网站性能?  公司门户网站制作流程,华为官网怎么做?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  建站之星与建站宝盒如何选择最佳方案?  北京网站制作网页,网站升级改版需要多久?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在万网自助建站平台快速创建网站?    阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何在VPS电脑上快速搭建网站?  建站主机CVM配置优化、SEO策略与性能提升指南  如何在阿里云高效完成企业建站全流程?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  高防服务器:AI智能防御DDoS攻击与数据安全保障  Python路径拼接规范_跨平台处理说明【指导】  如何在香港服务器上快速搭建免备案网站?  建站主机如何选?性能与价格怎样平衡?  公司网站的制作公司,企业网站制作基本流程有哪些?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  免费视频制作网站,更新又快又好的免费电影网站?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何基于云服务器快速搭建个人网站?  如何高效完成独享虚拟主机建站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  山东云建站价格为何差异显著?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  如何获取PHP WAP自助建站系统源码?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  头像制作网站在线制作软件,dw网页背景图像怎么设置?  临沂网站制作公司有哪些,临沂第四中学官网?  网站代码制作软件有哪些,如何生成自己网站的代码?  建站之星安装后界面空白如何解决?  建站之星免费模板:自助建站系统与智能响应式一键生成  香港服务器网站卡顿?如何解决网络延迟与负载问题?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  nginx修改上传文件大小限制的方法  完全自定义免费建站平台:主题模板在线生成一站式服务  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  历史网站制作软件,华为如何找回被删除的网站?  香港服务器租用费用高吗?如何避免常见误区? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。