Python 通过ADB控制android手机

1. 首先安装adb,链接如下:adb下载

2. 调试指令:

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含义
3HOME 键
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)

链接

  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值