一.  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 <remote> <local>

  13. 向模拟器中写文件:
      adb push <local> <remote>

  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 <source> <destination></destination></source>
        如:adb push update.zip /sdcard/
       从设备上复制一个文件或目录:
       adb pull <source> <destination></destination></source>
       如: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 能实现不同的功能,完整的 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 命令的一些用法举例

电源键

命令:

1

adb shell input keyevent 26

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

菜单键

命令:

1

adb shell input keyevent 82

HOME 键
 命令:

1

adb shell input keyevent 3

返回键 命令:

1

adb shell input keyevent 4

音量控制
增加音量:

1

adb shell input keyevent 24

降低音量:

1

adb shell input keyevent 25

静音:

1

adb shell input keyevent 164

媒体控制

播放/暂停:

1

adb shell input keyevent 85

停止播放:

1

adb shell input keyevent 86

播放下一首:

1

adb shell input keyevent 87

播放上一首:

1

adb shell input keyevent 88

恢复播放:

1

adb shell input keyevent 126

暂停播放:

1

adb shell input keyevent 127

点亮/熄灭屏幕

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

点亮屏幕:

1

adb shell input keyevent 224

熄灭屏幕:

1

adb shell input keyevent 223

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

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

1

2

import os

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

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

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

1

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

程序实例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#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命令:对手机进行操作;

【adb命令】电脑操作手机adb命令大全相关推荐

  1. linux下adb传输文件,使用adb在电脑和手机间传文件,adb手机传文件

    使用adb在电脑和手机间传文件,adb手机传文件 首先需要root手机. 然后,"Win + R",打开cmd窗口.下面以copy d:\1.txt到/system/目录为例说明 ...

  2. autojs与java开发的手机投屏,可在电脑操作手机

    手机上的aotujs代码,主要利用截图手机屏幕转换byte[]数据用tcpip传输到电脑配合java框架jframe显示手机实时界面等 importClass(java.net.InetAddress ...

  3. python调用adb传输电脑文件到手机_使用adb在电脑和手机间传文件

    首先须要root手机. 然后,"Win + R",打开cmd窗体.以下以copy d:\1.txt到/system/文件夹为例说明. adb push source(localpa ...

  4. android adb 传文件大小,使用adb在电脑和手机间传文件

    首先需要root手机. 然后,"Win + R",打开cmd窗口.下面以copy d:\1.txt到/system/目录为例说明 adb push source(localpath ...

  5. 使用adb在电脑和手机间传文件

    首先需要root手机.然后,"Win + R",打开cmd窗口.下面以copy d:\1.txt到/system/目录为例说明. adb push source(localpath ...

  6. DOS命令行操作MySQL常用命令

    平时用可视化界面用惯了,如果紧急排查问题,没有安装可视化工具的话,只能通过命令来看了. 以备不时之需,我们要熟悉一下命令行操作MySQL. 打开DOS命令窗口:WIN + R 输入cmd,回车 然后输 ...

  7. 计算机 运行新ie 命令,电脑中通过执行命令来清除IE浏览器隐私数据的方法

    ‍ 我们知道在电脑中使用IE浏览器来浏览各种网页后,会留下很多隐私数据,像历史记录.临时文件.用户密码.Cookie等信息.如果想要清除这些数据,那么可以通过Internet选项中的相关设置来实现.不 ...

  8. 用Total Control在电脑操作手机

    官网:http://tc.sigma-rt.com.cn/ 下载后安装,把手机通过数据线与电脑连接,开通USB调试模式,然后就可以很方便的在电脑上操作手机了. 如图: PS:这个东东主要是为了方便开发 ...

  9. 如何通过TotalControl系统设置,提高电脑操作手机速度(教程)

    TC 是一款将电脑和手机连接的应用软件,若要达到 TC使用的最佳性能,则需对电脑/手机/软件进行最优设置. 对于 TC传屏和操控的速度快慢,主要受"手机加速,电脑加速,硬件加速"三 ...

  10. ADB用命令来操作手机相册中的照片识别二维码

最新文章

  1. BZOJ1085 [SCOI2005] 骑士精神
  2. 职场思想分享001 | 有多种选择才叫有能力
  3. java 获取上下文_如何获得spring上下文的方法总结
  4. MySql 获取表的Comment
  5. 触发器批量更新 用游标,一个一个处理
  6. nginx 强制跳转https_Nginx服务器环境手动安装Discuz! Q非详细教程
  7. 历经十年,Windows 7 生命周期将结束,微软:快换 Windows 10
  8. ie6、ie7下overflow失效
  9. jquery选择器通配符
  10. python的合法名称_python 命名规范
  11. 产生滚动条时JPanel的大小发生变化
  12. ImportError: No module named managers
  13. asp.net mvc 伪静态路由配置
  14. Android 设计模式实战之关于封装计费代码库的策略模式详谈
  15. 雷达相关书籍学习顺序推荐
  16. Java下载excel文件并且添加水印效果
  17. php微信消息通知,php实现微信小程序消息通知
  18. 进展:Pegasus的自动化编译测试
  19. 二次型相似对角化的原因
  20. 搜狗在任务栏的“天猫618炒鸡红包”如何关闭

热门文章

  1. 【转】VBA编程入门(二)
  2. 苹果手机运行html游戏,苹果手机如何运行PSP游戏方法
  3. 异速联服务器配置系统管理员,异速联V6.2.4.0正式版全新发布
  4. Javashop 7.0 增加小程序支付(二次开发)
  5. itools苹果录屏大师_如何录制ZOOM视频会议?实用的录屏软件
  6. STM32下载程序的三种方法(串口、ST-LINK、 ST-LINK Utility)
  7. 6-15 基于顺序表的直接选择排序 (10分)
  8. 在visual stdio中使用Git
  9. C语言课程设计---职工工资管理系统
  10. 魔方游戏程序设计制作(C语言)