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


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

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

在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会自动转义。

Python精要参考 pdf版 Python精要参考 pdf版

这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,D*id M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)

Python精要参考 pdf版 1 查看详情 Python精要参考 pdf版
  • 启动指定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脚本中执行adb命令的方法的详细内容,更多请关注其它相关文章!


# 进阶  # 临清网站seo  # 太原网站优化单位  # 祥符网站优化报价  # 汕尾网站建设设计报价  # 遂昌seo招聘  # 天津app开发网站建设  # url对seo最友好是  # 站长之家SEO排名查询  # 中山乐从网站建设  # 湖里网站建设流程  # 相关文章  # 你想  # 设为  # 就能  # python  # 返回值  # 这本书  # 几种  # 浮点  # 出了  # python脚本  # win  # ai  # 工具  # app  # 编码  # windows  # android  # adb命令 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: windows server2019显卡驱动怎么安装_winserver2019显卡驱动安装与远程桌面优化  如何在vscode中关闭it环境  苹果自助维修计划支持哪些设备机型  Python中处理嵌套字典与列表的数据提取与过滤教程  Win10输入法不见了怎么办 Win10找回语言栏图标教程  顺丰快递单号查询寄件人 顺丰寄件人查询入口  重返未来:1999卡戎全方位攻略  excel怎么计算平均值 excel平均函数*ERAGE使用教学  Python对象引用与属性赋值:理解链表中的行为  《长生:天机降世》火塔小怪大全  汽水音乐网页端访问 汽水音乐官方网页直达  Windows自带的便笺数据如何备份_防止数据丢失的便利贴迁移教程【干货】  Pandas中基于动态偏移量实现DataFrame列值位移的策略  《异星探险家》古怪的物品作用介绍  WooCommerce 购物车:始终显示所有交叉销售商品  Win11怎么录屏_Windows 11自带Xbox Game Bar录制视频  如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践  构建可配置的J*aScript加权点击计数器与共享总计功能  如何编写一个符合 composer 规范的 post-install-cmd 脚本?  优酷官网登录入口电脑版 优酷官网网址入口  J*aScript 数值去小数位处理:多种方法与实践  酷狗音乐多音轨设置教程  大众点评了却看不到是怎么回事  Lar*el Dusk 测试中管理浏览器权限:以剪贴板访问为例  C#中的Record类型有什么优势?C# 9新特性Record与Class的用法区别  《i莞家》修改昵称方法  圆通快递包裹轨迹查询 圆通速递快件实时位置跟踪  macosmonterey系统外接显示器驱动怎么安装_macosmonterey外接显示器驱动与分辨率调整  j*a中ArrayBlockingQueue的使用  多闪APP官方下载安装入口_多闪最新版本获取入口  C++如何将字符串转换为大写或小写_C++ transform函数的使用技巧  抖音网页版地址直接进入_抖音网页版在线观看入口  《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略  b站怎么设置动态仅粉丝可见_b站动态粉丝可见设置方法  《微信》视频号原创声明开启方法  搜狗浏览器如何查找页面中的文字 搜狗浏览器Ctrl+F页面搜索功能  PHP中实现JSON数据数组分页的教程  哔哩哔哩在线观看入口 B站官网免费进入  Sublime怎么配置YAML文件格式化_Sublime YAML Formatter插件教程  苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤  智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析  《爱笔思画x》魔棒工具抠图教程  163邮箱登录入口官网 163.com邮箱登录入口  mysql通配符能用于日志查询吗_mysql通配符在系统日志查询中的实际使用方法  谷歌浏览器官网地址整理_谷歌浏览器新版直连2026稳定访问  我居然低估了 DeepSeek,这次更新它做到了这些!  国际经济与贸易就业方向解析  如何外贸网站设计-能留住客户提升用户体验!  苹果官网国补入口在哪  秋风萧瑟洪波涌起中的萧瑟指的是什么 

 2025-12-04

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.