python中adb有什么功能


Posted in Python onJune 07, 2020

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

ADB主要功能有:

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

2、管理模拟器或设备的端口映射

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

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

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

两者的区别就是前者无法获取到返回值,后者可以获取到返回值。

os.popen()返回的是file对象,可以直接利用read()方法读取。

内容扩展:

 python如何调用adb命令

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

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方法的话,等待结果的返回时间会非常长,这里我们就要换一种方法读取结果,写法如下。

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功能详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用py2exe打包程序介绍
Nov 20 Python
python opencv 直方图反向投影的方法
Feb 24 Python
python字符串与url编码的转换实例
May 10 Python
PyQt5显示GIF图片的方法
Jun 17 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
Python二元算术运算常用方法解析
Sep 15 Python
python map比for循环快在哪
Sep 21 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 Python
python如何保存文本文件
Jun 07 #Python
Python如何用wx模块创建文本编辑器
Jun 07 #Python
python如何查看网页代码
Jun 07 #Python
python中对二维列表中一维列表的调用方法
Jun 07 #Python
python学习将数据写入文件并保存方法
Jun 07 #Python
详解python如何引用包package
Jun 07 #Python
Python如何输出整数
Jun 07 #Python
You might like
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
php基础教程
2015/08/26 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
python访问sqlserver示例
2014/02/10 Python
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python re模块findall()函数实例解析
2018/01/19 Python
Python星号*与**用法分析
2018/02/02 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
关于廉洁的广播稿
2014/01/30 职场文书
班班通校本培训方案
2014/03/12 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
自查自纠整改报告
2014/11/06 职场文书
介绍信范文
2015/01/31 职场文书
2014年个人总结范文
2015/03/09 职场文书
质检员岗位职责范本
2015/04/07 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android