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 socket 超时设置 errno 10054
Jul 01 Python
python实现的jpg格式图片修复代码
Apr 21 Python
Python解析最简单的验证码
Jan 07 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
AI人工智能 Python实现人机对话
Nov 13 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
详解python中groupby函数通俗易懂
May 14 Python
Python selenium实现断言3种方法解析
Sep 08 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
ThinkPHP分页类使用详解
2014/03/05 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
图片之间的切换
2006/06/26 Javascript
JavaScript 拖拉缩放效果
2008/12/10 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python上下文管理器和with块详解
2017/09/09 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
战友聚会主持词
2014/04/02 职场文书
大学生就业策划书范文
2014/04/04 职场文书
学校国庆节活动总结
2015/03/23 职场文书
驻村工作简报
2015/07/20 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python