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使用append合并两个数组的方法
Apr 28 Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
Jul 22 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
详解Python中的动态属性和特性
Apr 07 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
python输入错误后删除的方法
Oct 12 Python
pytorch的梯度计算以及backward方法详解
Jan 10 Python
对tensorflow中cifar-10文档的Read操作详解
Feb 10 Python
Python argparse模块使用方法解析
Feb 20 Python
python实现取余操作的简单实例
Aug 16 Python
让你相见恨晚的十个Python骚操作
Nov 18 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
认识并使用PHP超级全局变量
2010/01/26 PHP
php flv视频时间获取函数
2010/06/29 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
python字符串中的单双引
2017/02/16 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
python 公共方法汇总解析
2019/09/16 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python 命名规范知识点汇总
2020/02/14 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
python对一个数向上取整的实例方法
2020/06/18 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
认购协议书范本
2014/04/22 职场文书
个人求职信范文
2014/05/24 职场文书
会计专业自荐书
2014/07/08 职场文书
庆元旦活动总结
2014/07/09 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
表彰大会新闻稿
2015/07/17 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python