python调用adb命令
有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。
实际使用时视需求情况而选择。
现假定有一个shell脚本
test.sh:
#!/bin/bash
echo "hello world!"
exit 3
B. 如何使用Python调用ADB shell中的命令
import os
os.system("adb shell xxxxx")
C. 如何在Python中执行DOS命令
关于python调用cmd命令,主要介绍两种方式:
一、Python的OS模块
OS模块调用CMD命令有两种方式:os.system(),os.popen()。 都是用当前进程来调用。
1、os.system()
a、简单粗暴的执行cmd指令
b、返回结果为0表示执行成功,无法获取命令输出的内容,本在cmd输出的内容会直接在控制台输出。
c、当命令运行结束后接着往下面执行程序(同步阻塞式)。用法如:os.system("ipconfig")。
2、os.popen()
a、能获取DOS命令输出的内容。
b、os.popen()返回的是一个file对象,那么可以跟打开文件一样操作,r是以读的方式打开。
c、当命令运行结束后接着往下面执行程序(同步阻塞式)。
注意:os.popen() 方法用于从一个命令打开一个读写管道,在Unix,Windows中有效。
用法如:
with os.popen(r"adb devices","r")as f:
text = f.read()
print(text)# cmd输出结果
二、管道subprocess模块
a、在当前进程下产生子进程。
b、用wait()函数等待结果(异步非阻塞式)。
【方法1】
result = subprocess.check_output(r'adb devices') ## 命令执行的输出结果放到了result里
print(result)
【方法2】
process = subprocess.Popen(r'adb devices',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
command_output = process.stdout.read().decode('gbk')
print(command_output)
Notices:
有些命令行是异步执行的不会马上返回输出,所以有时候我们要先等这个命令行执行完毕才能从stdout读出来数据。这个时候要加上
process.wait()
我的GitHub
D. python如何进入adb shell交互模式 , 在adb shell交互模式中输入命令并实时获得结果
看上图,你可以试试,只是写了其中的一部分,具体执行部分,你用if就能搞定,希望能帮到你
E. 每天赚一顿饭钱很轻松利用Python开发某手自动刷视频脚本
春节期间闲在家里无事,老妈又要刷快手极速版挣金币,整天在那刷.看不下去了,就写了个脚本自动刷.脚本使用 python 调用 adb 命令,目前只实现了只在快手的视频界面自动滑屏, 其他界面不做任何事.不过可以自行添加需要滑动的界面. 更新: 又增加了刷宝短视频, 老妈的手机是 OnePlus5T, 最前面会多一个 ' * ContentProviderRecord{362943b u0
com.snda.wifilocating/com..pyramid.runtime.multiprocess.components.ServerProvider}
' 因此直接取位置不可取. 刷宝还是只需要下滑就可以了,因此没有做特殊动作. 下面是新的Python源码.
再次更新,又增加了快音,另外修改了前台程序判断的逻辑,还修改了程序执行的条件,现在不会因为设备突然断开而导致程序停止运行.
python源码:
F. adb命令可以给不同手机同时运行重启脚本么
可以。使用Python调用adb命令可以实现对多台手机设备同时进行重启,甚至指定重启的手机型号。ADB全称为AndroidDebugBridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是Android设备。
G. python如何操作手机
1、打开手机的开发者选项,本人小米手机,系统android 7.0(miui 9.1),设置->我的设备->全部参数(点击miui版本5次,即可开启开发者模式)
2、设置->更多设置(倒数第三个就是开发者选项)->开启USB调试,使用数据线连接手机和电脑
3、在电脑上安装adb驱动,下载地址:http://download.csdn.net/download/guochao198975/10189371
打开安装软件
4、点击Device Manager,选择usb连接的设备,单击Install,安装前会有一个叹号,安装后如下图,会出现Android Phone.
如果没有出现USB连接的设备,则说明手机没有进入usb调试模式,或者手机没有连接好.如果一直有感叹号说明驱动没有安装成功.
5、安装好驱动后,还需要在电脑上下载adb工具,这里注意一定要下载1.0.31以上的版本,网上很多能下载的高的版本都是假的(实际很多都是1.0.26),
推荐下载地址:http://download.csdn.net/download/guochao198975/10188060(版本为1.0.39)
解压工具到自己指定的目录下,我解压的目录是C:UsersAaronadb
6、我们还需要为adb工具配置环境变量,配置的目的是为后续python程序正常调用adb工具做准备,如果不配置,那么必须把adb工具和python文件放到同一目录下(不建议这么做).
右键计算机,点击属性->高级系统设置->环境变量,在系统变量中的Path中添加自己的adb工具目录路径.(注意:我这里是win7系统,其他系统可行网络,大同小异)
7、这里adb就可以正常运行了,打开cmd,输入 abd version,可以正常显示你的adb工具版本号
输入adb devices 可正常显示 abd设备列表.那么就表示一切顺利.
可是现实情况往往都不怎么一帆风顺.这中间我遇到了两种问题.
第一个问题是提示"adb not found"
解决方法如下,右键计算机->属性->设备管理器->如下图右键Android Composite ADB Interface,选择详细信息,属性中选择硬件Id,查看值中如下图截图的四个字符(实际是十六进制的编码),我的是"2717",在自己用户的主目录下,找到.android目录(注意前面的"."),查看是否存在adb_usb.ini文件,如果存在修改即可,如果不存在需要新建一个.用文本编辑器打开,打开后输入"0x2717"image.png,保存即可.重新拔插数据线,
此问题解决,可再次在cmd中查看adb devices,即可正常显示设备列表.
第二个问题是虽然可以正常显示驱动列表,但是状态是"adb offline ",此问题就是为什么选在adb版本1.0.31以上的原因了,这是之前adb工具真的安卓4以上手机的bug,在1.0.31以上版本已经解决.
8、在cmd上输入adb kill-server 然后重新拔插usb线之后,就可以连接adb 了
9、这时我们可以开始部署python环境了,具体怎么部署python环境,我就不说明了,网上资料很多,相信看此教程的都有点python基础,没有的话自行网络.
这里需要强调的是需要引用一些类库.(如果提示ImportError: No mole named 'numpy'
表示,没有安装numpy 或没有安装好。使用命令pip install numpy,即可自动安装)
10、下载微信跳一跳python程序.下载地址:http://download.csdn.net/download/guochao198975/10189554
11、在手机端打开微信跳一跳.在电脑端命令行运行wechat_jump_auto.py.按照提示,输入y,回车,神奇的事情发生了,微信跳一跳的小人自动蹦了.(温馨提示不要太高分哦~~~~)
python学习网,大量的免费python视频教程,欢迎在线学习!
H. python的subprocess.Popen()执行adb命令,adb报错返回中文数据时会出错,应该怎么办
你打包成exe后,命令行应该是pyinstller -Fw xxx.py
你加上了w参数也就是把console设置成了flase;那么os.popen()或者subprocess.popen()执行的时候没有载体,你只有把console设置成true,也就是命令改为pyinstaller -F xxx.py,这样你的os.popen()可执行,也能获得返回值。
的话还蛮多的但是非要说哪一个好玩的话就没有什么标准
I. 如何用python写一个小工具,输入IP后自动调用adb connect XXX.XXX.XX.XX 来无线连接adb
在Python中可用os.system执行终端命令,把adb传入即可
J. 如何使用python脚本调用adb shell里面的命令
python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。
现假定有一个shell脚本
test.sh:
#!/bin/bash
echo "hello world!"
exit 3