python中adb有什么功能

作者:yang 时间:2022-06-22 13:25:15 

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之后就可以很方便的同时操作多台设备。

来源:https://www.py.cn/faq/python/18567.html

标签:python,adb功能
0
投稿

猜你喜欢

  • 解决Tensorflow使用pip安装后没有model目录的问题

    2023-08-09 22:58:05
  • Apple在Safari 4中抛弃品牌视觉设计

    2009-02-26 13:05:00
  • Python封装成可带参数的EXE安装包实例

    2023-05-19 04:50:17
  • Django框架基础认证模块auth应用示例

    2023-11-10 07:48:51
  • 用户分类浅谈

    2009-09-27 12:14:00
  • 在ASP中使用SQL语句之4:联合语句

    2007-08-11 12:34:00
  • ASP编程入门进阶(十三):AdRotator & Content Rotator

    2008-09-24 17:47:00
  • Yahoo!网站性能最佳体验的34条黄金守则——JavaScript和CSS

    2008-05-29 13:34:00
  • PHP PDOStatement::getAttribute讲解

    2023-06-05 07:29:31
  • pandas读取excel,txt,csv,pkl文件等命令的操作

    2023-09-08 08:57:33
  • 在SUSE10环境下安装和配置MySQL数据库

    2008-12-17 15:03:00
  • Python实现图像随机添加椒盐噪声和高斯噪声

    2023-06-13 22:54:36
  • Python库学习Tkinter制作GUI个性签名设计软件

    2021-06-23 08:17:54
  • asp动态页面防采集的新方法

    2011-02-26 10:44:00
  • HMAC算法--asp源码

    2009-08-28 12:51:00
  • openai createChatCompletion函数使用实例

    2023-06-14 16:45:38
  • python单元测试框架pytest介绍

    2021-06-11 15:28:55
  • 返回首页的链接地址写法

    2008-10-22 13:38:00
  • 对Python Pexpect 模块的使用说明详解

    2022-10-24 02:14:09
  • 动网论坛的asp 数据库连接代码

    2011-04-06 10:32:00
  • asp之家 网络编程 m.aspxhome.com