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创建XML文档
Mar 01 Python
跟老齐学Python之大话题小函数(1)
Oct 10 Python
Python标准库urllib2的一些使用细节总结
Mar 16 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python处理字符串之isspace()方法的使用
May 19 Python
python实现用户管理系统
Jan 10 Python
使用Python设计一个代码统计工具
Apr 04 Python
python正则表达式之对号入座篇
Jul 24 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
linux中如何使用python3获取ip地址
Jul 15 Python
Python3基本输入与输出操作实例分析
Feb 14 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通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
js解决movebox移动问题
2016/03/29 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
详解Django中的过滤器
2015/07/16 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
Python实现区域填充的示例代码
2021/02/03 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
.NET常见笔试题集
2012/12/01 面试题
最新党员的自我评价分享
2013/11/04 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
天下第一关导游词
2015/02/06 职场文书
委托书范本格式
2019/04/18 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技