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 】
相关推荐:
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
非常酷的网站设计制作软件,酷培ai教育官方网站?
如何在景安服务器上快速搭建个人网站?
网站制作企业,网站的banner和导航栏是指什么?
如何获取PHP WAP自助建站系统源码?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何在阿里云虚拟服务器快速搭建网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何在腾讯云免费申请建站?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
如何用花生壳三步快速搭建专属网站?
Python文件流缓冲机制_IO性能解析【教程】
教你用AI将一段旋律扩展成一首完整的曲子
微信小程序 wx.uploadFile无法上传解决办法
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
详解Huffman编码算法之Java实现
如何在IIS中配置站点IP、端口及主机头?
免费网站制作appp,免费制作app哪个平台好?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
如何用PHP工具快速搭建高效网站?
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Java解压缩zip - 解压缩多个文件或文件夹实例
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Python制作简易注册登录系统
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何用PHP快速搭建CMS系统?
如何快速搭建高效香港服务器网站?
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel怎么上传文件_Laravel图片上传及存储配置
如何在万网主机上快速搭建网站?
Laravel如何处理CORS跨域请求?(配置示例)
如何在IIS管理器中快速创建并配置网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何在IIS中新建站点并解决端口绑定冲突?
新三国志曹操传主线渭水交兵攻略
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践

