Python Android 自动化 1/10 - ADB
1. ADB是什么
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备(如G1手机). 它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至模拟器或android设备
ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.
摘自:百度百科 https://baike.baidu.com/item/ADB/23427792
2. ADB怎么安装
ADB是安装Android Studio SDK后附带的工具,不需要另外安装,官方下载地址:https://developer.android.google.cn/studio/
最低限度只需要以下三个文件,可以拷贝到Python脚本所在目录,或者添加到系统路径中:
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
参考:https://jingyan.baidu.com/article/7f41ecec349c0f593d095c84.html
3. ADB能干什么
adb 可以做到的事情,包括不限于:
列出所有设备信息;
通过TCP连接目标设备、端口转发;
安装 / 卸载 / 启动 应用;
推送文件到设备 / 下拉文件到本地;
查看 设备信息 / 系统日志;
发送命令;
...
参考://www.greatytc.com/p/698a24d758c7
//www.greatytc.com/p/860bc2bf1a6a
这次主要用到的:
清理ADB: adb kill-server(启动ADB前需要清理之前启动过的进程,否则出错);
启动ADB: adb start-server;
点击屏幕: adb shell input tap 50 100 (点击屏幕上50,100坐标,具体跟屏幕尺寸及分辨率相关);
滑动屏幕: adb shell input swipe 50 100 50 200 (下滑屏幕,从50,100坐标滑到50,200坐标);
屏幕截图: adb shell screencap -p /sdcard/screen.png (截图保存为screen.png);
下拉文件: adb pull /sdcard/screen.png (把screen.png拉回PC);
输入文字: adb shell input text 12345 (向安卓设备输入12345,只能是英文字母或数字,中文要另外处理);
输入中文: 先安装这个开源输入法: https://github.com/senzhk/ADBKeyBoard (据说还能输入韩文日文等等,但我没试过);
设置安卓当前输入法:adb shell ime set com.android.adbkeyboard/.AdbIME;
输入中文:adb shell am broadcast -a ADB_INPUT_TEXT --es 中文字符串;
静音: adb shell input keyevent 164;
返回按钮: adb shell input keyevent 4;
启动应用: adb shell am start -n 应用名称/activity名称(如何找到一个App的应用名称和Activity名称,后续会展开说);
退出应用: adb shell pm clear 应用名称