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中设置变量访问权限的方法
Apr 27 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
numpy基础教程之np.linalg
Feb 12 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
python语言的优势是什么
Jun 17 Python
Python import模块的缓存问题解决方案
Jun 02 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+xslt在windows平台上
2006/10/09 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
2014/07/28 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
javascript 获取图片颜色
2009/04/05 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
javascrpt密码强度校验函数详解
2020/03/18 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
python版本的仿windows计划任务工具
2018/04/30 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
python输出pdf文档的实例
2020/02/13 Python
Python Django view 两种return的实现方式
2020/03/16 Python
python 错误处理 assert详解
2020/04/20 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
歌颂祖国的演讲稿
2014/05/04 职场文书
教师节倡议书2015
2015/04/27 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android