Python如何通过subprocess调用adb命令详解
发布时间 - 2026-01-11 02:58:56 点击率:次前言

本文主要给大家介绍了关于使用Python通过subprocess调用adb命令,subprocess包主要功能是执行外部命令(相对Python而言)。和shell类似。
换言之除了adb命令外,利用subprocess可以执行其他的命令,比如ls,cd等等。
subprocess 可参考: https://docs.python.org/2/library/subprocess.html
在电脑上装好adb工具,配置好adb的环境变量,先确保shell中可以调用adb命令。
代码示例
Python2.7
类 Adb,封装了一些adb的方法
import os
import subprocess
class Adb(object):
""" Provides some adb methods """
@staticmethod
def adb_devices():
"""
Do adb devices
:return The first connected device ID
"""
cmd = "adb devices"
c_line = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
if c_line.find("List of devices attached") < 0: # adb is not working
return None
return c_line.split("\t")[0].split("\r\n")[-1] # This line may have different format
@staticmethod
def pull_sd_dcim(device, target_dir='E:/files'):
""" Pull DCIM files from device """
print "Pulling files"
des_path = os.path.join(target_dir, device)
if not os.path.exists(des_path):
os.makedirs(des_path)
print des_path
cmd = "adb pull /sdcard/DCIM/ " + des_path
result = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
print result
print "Finish!"
return des_path
@staticmethod
def some_adb_cmd():
p = subprocess.Popen('adb shell cd sdcard&&ls&&cd ../sys&&ls',
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return_code = p.poll()
while return_code is None:
line = p.stdout.readline()
return_code = p.poll()
line = line.strip()
if line:
print line
print "Done"
some_adb_cmd方法执行一连串的命令。各个命令之间用&&连接。
接着是一个死循环,将执行结果打印出来。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# python
# adb命令
# python调用adb命令
# 调用adb
# shell
# python使用ctypes库调用DLL动态链接库
# Python调用REST API接口的几种方式汇总
# 如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
# python使用ctypes调用扩展模块的实例方法
# python中使用ctypes调用so传参设置遇到的问题及解决方法
# Python使用ctypes调用C/C++的方法
# python调用百度REST API实现语音识别
# python调用百度语音REST API
# Python调用C语言的方法【基于ctypes模块】
# Python 调用 ES、Solr、Phoenix的示例代码
# 是一个
# 其他的
# 给大家
# 这篇文章
# 谢谢大家
# 装了
# 主要功能
# 装好
# 打印出来
# 有疑问
# class
# brush
# import
# py
# methods
# pre
# Adb
# def
# staticmethod
# adb_devices
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS7中新建站点?详细步骤解析
EditPlus中的正则表达式 实战(2)
浅谈redis在项目中的应用
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
详解Android图表 MPAndroidChart折线图
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
怎么用AI帮你为初创公司进行市场定位分析?
C++时间戳转换成日期时间的步骤和示例代码
移动端脚本框架Hammer.js
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Android中AutoCompleteTextView自动提示
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
北京网站制作的公司有哪些,北京白云观官方网站?
如何在腾讯云服务器上快速搭建个人网站?
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
JavaScript如何操作视频_媒体API怎么控制播放
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
Bootstrap整体框架之CSS12栅格系统
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
javascript中的try catch异常捕获机制用法分析
使用spring连接及操作mongodb3.0实例
Laravel如何实现本地化和多语言支持?(i18n教程)
教学论文网站制作软件有哪些,写论文用什么软件
?
详解Oracle修改字段类型方法总结
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel模型事件有哪些_Laravel Model Event生命周期详解
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
如何在云主机快速搭建网站站点?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
JavaScript如何实现倒计时_时间函数如何精确控制
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
南京网站制作费用,南京远驱官方网站?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
文字头像制作网站推荐软件,醒图能自动配文字吗?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Python面向对象测试方法_mock解析【教程】
如何为不同团队 ID 动态生成多个非值班状态按钮
香港服务器WordPress建站指南:SEO优化与高效部署策略
php打包exe后无法访问网络共享_共享权限设置方法【教程】
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
如何自定义建站之星网站的导航菜单样式?

