一.  adb 相关命令:

1. 关闭adb服务:adb kill-server

2. 启动adb服务  adb start-server

3. 查询当前运行的所有设备  adb devices

4. 可能在adb中存在多个虚拟设备运行 可以指定虚拟设备运行  -s 虚拟设备名称

5. 重启设备 adb reboot  --指定虚拟设备   adb -s 设备名称 reboot

6. 查看日志  adb logcat  清除日志 adb logcat -c

7. 进入linux shell下  adb shell 其中常用的linux命令  cd  cat 等等 输入su可以获取超级管理员名称了 要确定是否有哪些命令 进入 system/bin目录 就知道了

8. 传入文件到设备中 adb push 本地文件 远程目录

9. 从设备中拷贝文件到本地  adb -s emulator-5556 pull /data/config.ini d:/

10. 显示当前运行的全部模拟器:

adb devices

1 安装应用程序:

adb install -r 123.apk

12. 获取模拟器中的文件:

adb pull

13. 向模拟器中写文件:

adb push

14. 进入模拟器的shell模式:

adb shell

15. 卸载apk包:

adb shell

cd data/app

rm 123.apk

exit

adb uninstall 123.apk

adb install -r 123.apk

16. 查看adb命令帮助信息:

adb help

17. 删除系统应用:

adb remount (重新挂载系统分区,使系统分区重新可写)。

adb shell

cd system/app

rm 123.apk

18. 获取管理员权限:

adb root

19、复制文件:

复制一个文件或目录到设备:

adb push

如:adb push update.zip /sdcard/

从设备上复制一个文件或目录:

adb pull

如:adb pull /sdcard/update.zip.

20、取得当前运行设备的实例的列表及每个实例的状态:

adb devices

21:adb shell input tap

这条命令模拟Android手机在屏幕坐标(X,Y)处进行了点击操作。

22:adb shell input swipe

这条命令模拟Android手机从屏幕坐标(X1,Y1)滑动到坐标(X2,Y2)的操作。

23、uiautomator dump   dump: creates an XML dump of current UI hierarchy 这个命令是用来成成当前界面的UI层次,并用XML格式进行展示 。这样就可以获取各个组件的位置了

注:如果PC要想同时控制多台Android手机,必须在adb 后面添加-s

例如:adb -s 13b6e4c4 shell input tap 400 400

表示对13b6e4c4这台Android手机进行在屏幕上(400,400)坐标位置进行模拟的点击事件。

24.   能看到设备信息就代表设备已经连接成功了,接下来的命令就是adb install 路径+包名.apk

例如我的安装包放在桌面,那么命令就是adb install C:\Users\hyh\Desktop\XXX.apk

*** adb shell uiautomator dump /mnt/sdcard/window_dump.xml 获得手机当前界面的UI信息,生成window_dump.xml

*** adb shell input text “123” 输入text

举例:

1、打开cmd,进入到当前文件夹中,输入命令 adb devices 查看当前与电脑连接的设备(前提是,手机打开usb调试模式),可以查看已连接成功的手机。

2、 若手机成功连接,输入命令 adb shell input tap 100 100 , 表示点击屏幕上坐标为(100,100)的点,如果不知道需要点击的点的具体位置的话可以在手机开发者模式中设置。

二. adb 模拟按键:

1. 比如使用 adb shell input keyevent 命令,不同的 keycode 能实现不同的功能,完整的 keycode 列表详见 KeyEvent,摘引部分我觉得有意思的如下:

:keycode

含义

3

HOME 键

4

返回键

5

打开拨号应用

6

挂断电话

24

增加音量

25

降低音量

26

电源键

27

拍照(需要在相机应用里)

64

打开浏览器

82

菜单键

85

播放/暂停

86

停止播放

87

播放下一首

88

播放上一首

122

移动光标到行首或列表顶部

123

移动光标到行末或列表底部

126

恢复播放

127

暂停播放

164

静音

176

打开系统设置

187

切换应用

207

打开联系人

208

打开日历

209

打开音乐

210

打开计算器

220

降低屏幕亮度

221

提高屏幕亮度

223

系统休眠

224

点亮屏幕

231

打开语音助手

276

如果没有 wakelock 则让系统休眠

2. input 命令的一些用法举例

电源键

命令:

adb shell input keyevent 26

执行效果相当于按电源键。

菜单键

命令:

adb shell input keyevent 82

HOME 键

命令:

adb shell input keyevent 3

返回键

命令:

adb shell input keyevent 4

音量控制

增加音量:

adb shell input keyevent 24

降低音量:

adb shell input keyevent 25

静音:

adb shell input keyevent 164

媒体控制

播放/暂停:

adb shell input keyevent 85

停止播放:

adb shell input keyevent 86

播放下一首:

adb shell input keyevent 87

播放上一首:

adb shell input keyevent 88

恢复播放:

adb shell input keyevent 126

暂停播放:

adb shell input keyevent 127

点亮/熄灭屏幕

可以通过上文讲述过的模拟电源键来切换点亮和熄灭屏幕,但如果明确地想要点亮或者熄灭屏幕,那可以使用如下方法。

点亮屏幕:

adb shell input keyevent 224

熄灭屏幕:

adb shell input keyevent 223

三、使用python脚本自动运行cmd 命令

在adb文件夹下建立一个python文件

import os

os.system('adb shell input tap 100 100');

运行脚本,发现与在命令行输入相同语句有同样的效果。

2、也可以使用subprocess.Popen,最简单使用方式如下,设置shell=True,就不会弹出cmd框

process = subprocess.Popen('adb shell input tap 14 1402',shell=True)

程序实例:

#coding:utf-8

#程序功能:可以实现抖音个人页面视频的自动点击,从而自动增加访问量

#思路:抖音主页中两个视频切换点击,可以实现访问量的增加

#使用ADB程序,视频的屏幕坐标可以使用adb shell uiautomator dump命令,获取该页面xml源码后查得

#下述是小米MIX2抖音主页第一个视频和第二个视频的坐标位置

#缺点:运行时不能移动屏幕,后续可以采用获取模块ID号的方式去点击相应的位置

import time

import subprocess

i = 0

#每次操作的间隔时间取决于手机配置,配置越高时间越短

sleep_time = 0.5

while 1:

#用popen设置shell=True不会弹出cmd框

process = subprocess.Popen('adb shell input tap 14 1402',shell=True)

time.sleep(sleep_time)

process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True)

time.sleep(sleep_time)

process = subprocess.Popen('adb shell input tap 375 1402', shell=True)

time.sleep(sleep_time)

process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True)

time.sleep(sleep_time)

#os.system('adb shell input tap 14 1402')

#os.system('adb shell input keyevent KEYCODE_BACK')

#os.system('adb shell input tap 375 1402')

i+=1

print str(i) + 'clicks have been completed'

实现原理

Hierarchy Viewer:获得当前手机实时的UI信息,方便用于手机的自动化测试;

python中的subprocess.Popen() 或 Python os模块:调用系统命令;

uiautomator工具:获取界面控件信息;

adb命令:对手机进行操作;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python手机屏幕控制_Python脚本利用adb进行手机控制的方法相关推荐

  1. python控制手机屏幕亮度的软件_Python脚本利用adb进行手机控制

    Python脚本利用adb进行手机控制 一. adb 相关命令:1. 关闭adb服务:adb kill-server2. 启动adb服务 adb start-server3. 查询当前运行的所有设备 ...

  2. python控制手机自动刷新闻_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

  3. python写安卓app控制蓝牙_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

  4. 手机编写python脚本_Python 脚本利用adb 进行手机控制

    一.  adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务  adb start-server 3. 查询当前运行的所有设备  adb devices 4. ...

  5. python中adb连接手机_Python脚本利用adb进行手机控制的方法

    如何使用python脚本调用adb shell里面的命令 python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回 ...

  6. 安卓手机屏幕损坏情况下开启adb调试并且授权电脑

    安卓手机屏幕损坏情况下开启adb调试并且授权电脑 环境要求 一.手机刷入rec(~~cwm~~ ) 二.开启usb调试 三.对电脑进行授权 四.成功 五.参考 环境要求 电脑安装adb调试环境 手机可 ...

  7. python实现屏幕录制_Python实现屏幕录制功能的代码

    前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了下能不能通过万能的python来实现呢?经过一晚上的尝试发现 ...

  8. adb发送什么命令能在手机屏幕弹窗显示_将平板、手机作为电脑第二屏幕(Linux系统下)...

    背景 把手机.平板作为电脑第二屏幕是上个学期偶然想到的,那时我一边看网上的教程一边码代码.由于看的是视频教程,缩小了就看不清上面的字,放大了又会挡住打字区域.这时就想如果有个第二屏幕就很方便了,买个屏 ...

  9. 手机学python用什么浏览器_Python+Appium学习之启动手机浏览器

    一.启动浏览器: pycharm中python脚本如下: from appium import webdriver desired_caps ={ 'platformName':'Android', ...

最新文章

  1. Android json操作之取得一个对象
  2. 游戏开发中的图像生成
  3. SegmentFault D-Day 「杭州场: 前端移动端」回顾文章
  4. 防火墙双机热备三大协议(VRRP-VGMP-HRP)原理
  5. java加锁多线程改为单线程_GUI为什么不设计为多线程(用户事件和底层事件的流程是相反的,每层都加锁效率太低,共用一把锁那就是单线程)...
  6. 崩溃!如何面对令人脱发的老代码?
  7. 在手动安装 Kubernetes 的基础上搭建微服务
  8. 第一章 建立数学模型
  9. typescript入门练手小demo
  10. Matlab滤波器设计与滤波器特性分析(sptool、filterdesigner)
  11. Win10家庭版将中文用户名修改为英文用户名
  12. GAN: Generative Adversarial Nets
  13. 二维数组的几种定义方法
  14. /proc/sysrq-trigger说明
  15. php 获取ascii码,PHP实现ASCII码与字符串相互转换的方法
  16. caffe学习笔记31-理解全连接层
  17. 什么是电商运营(2)?
  18. 获取星期PHP,php获取星期方法小结
  19. spine导出二进制文件怎么导入unity
  20. 关押罪犯题解【并查集】

热门文章

  1. 锁分类 java_java锁的种类
  2. 微信开发 | 配置微信公众号关键域名(一)
  3. ROS小车记录系列(四)利用cartographer定位,修改源码发布pose话题
  4. 坚果云和亿方云差异在哪?
  5. Flume 原理介绍
  6. #python# 来找茬
  7. JFinal3.0 sql管理与动态生成
  8. python编写一个程序、输入一个数判断其是偶数还是奇数,Python - 练习 判断输入是奇数,偶数,小数,还是字符...
  9. 高分7(GF7)卫星数据制作平原地区DSM/DEM(一)
  10. 难道企业真的需要私有区块链吗?