python中adb有什么功能

ADB是Android SDK中的一个工具, 使用ADB能够直接操做管理Android模拟器或者真实的Andriod设备。python

ADB主要功能有:shell

一、在Android设备上运行Shell(命令行)app

二、管理模拟器或设备的端口映射框架

三、在计算机和设备之间上传/下载文件ide

四、将电脑上的本地APK软件安装至Android模拟器或设备上工具

python有两种方式去调用adb命令,一种是os.system(),一种是os.popen()。测试

二者的区别就是前者没法获取到返回值,后者能够获取到返回值。spa

os.popen()返回的是file对象,能够直接利用read()方法读取。命令行

内容扩展:日志

 python如何调用adb命令

Python中执行cmd命令能够用到os和subprocess两个模块。区别在于os是阻塞式的,subprocess是非阻塞式的,因此咱们使用subprocess是比较适合的。接下来我先举一个查询链接设备的命令来看看python中怎么样的写法。用到的命令为 adb devices。

1
2
3
4
import subprocess
order = 'adb devices' #获取链接设备
pi = subprocess.Popen(order,shell = True ,stdout = subprocess.PIPE)
print pi.stdout.read() #打印结果

实际打印结果,能够看到当前电脑链接了三台设备。这里须要再说明一下adb devices 命令的结果返回是一次性的,因此咱们用read方法读取数据是没有问题的,然而adb命令里还有一些是实时返回结果的,好比输出手机日志的命令logcat,结果会不断的打印出来当前的设备操做日志信息内容,这种类型的命令咱们在python中若是须要获取打印结果,若是仍是用read方法的话,等待结果的返回时间会很是长,这里咱们就要换一种方法读取结果,写法以下。

1
2
3
4
5
import subprocess
order = 'adb logcat'
pi = subprocess.Popen(order,shell = True ,stdout = subprocess.PIPE)
for i in iter (pi.stdout.readline, 'b' ):
print I

这样的打印效果,如同cmd里操做一致,实时的打印出日志信息。这里咱们就用到了readline方法,其实这种写法相似咱们读取文件,单行读取和所有内容读取。由于目前pyapp的框架已经基本写完了,因此有了写这篇文章的想法,分享一些python在处理adb命令上的一些心得,就目前来看python在调用adb命令上区别主要就是这两点,最终目的是咱们找到须要的功能命令获取结果数据,而后再去经过python处理这些返回数据,实现自动化测试的目的。你们要用好adb命令,还要注意一点的是每条命令的各类参数的搭配使用,好比pyapp的实现是支持多设备链接的,那么咱们在针对某个手机进行adb命令操做时,就须要带上-s 加设备号,表示操做的具体设备不然命令会报错。

好比咱们针对一个设备去进行点击操做,命令的写法应该是这样:adb -s 49dsd4554wdsa shell input tap 600 900,其中‘49dsd4554wdsa'是设备号,‘600 900'点击屏幕坐标。因此能够看到增长了-s以后就能够很方便的同时操做多台设备。

到此这篇关于python中adb有什么功能的文章就介绍到这了,更多相关python adb功能详解内容请搜索之前的文章或继续浏览下面的相关文章但愿你们之后多多支持!

相关文章
相关标签/搜索