1.在进行安卓端操作的时候,我们就会用到安卓自带的一个内置debug工具adb,那么我们就使用python进行自动输入
2.介绍一些常用的adb命令
adb devices #查看连接设备
adb get-state #获取设备状态
adb push <local> <remote> #向模拟器中写文件:
adb pull <remote> <local> #获取模拟器中的文件:
adb install -r 应用程序.apk
adb uninstall 包名
adb root
adb remount
adb shell
adb -s 模拟器编号 命令
adb shell /system/bin/screencap -p /sdcard/da.png #截图
adb shell screenrecord --time-limit 30 /mnt/deno.mp4 #录制30秒视频
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等) # 启动Activity
adb forward tcp:5555 tcp:8000 #设置端口
adb shell text #该命令主要是用于向获得焦点的EditText控件输入内容,
adb input keyevent # 该命令主要是向系统发送一个按键指令,实现模拟用户在键盘上的按键动作
adb shell input tap #该命令是用于向设备发送一个点击操作的指令,参数是<x> <y>坐标
input swipe [duration(ms)]
向设备发送一个滑动指令,并且可以选择设置滑动时长。
//滑动操作
adb shell input swipe 100 100 200 200 300 //从 100 100 经历300毫秒滑动到 200 200
//长按操作
adb shell input swipe 100 100 100 100 1000 //在 100 100 位置长按 1000毫秒
这里我们主要使用一个python内资库os
主要语法1:os.system("adb devices")#cmd执行命令
主要语法2: devices_cmd = os.popen(r"adb devices", "r")
Device_Manager = devices_cmd.read()
print(Device_Manager)#读取执行后返回内容
知道了语法我们就可以使用语法发送对应的命令以及判断adb的状态。
devices_cmd = os.popen(r"get-state", "r")
Device_Manager = devices_cmd.read()
print(Device_Manager)#读取执行后返回内容
if 'device' in Device_Manager:
print("[INFO] ADB is on")
elif 'offline' in Device_Manager:
print("[WARNING] ADB device is dumb")
else:
print("[WARNING] ADB is abnormal: " + Device_Manager)
import subprocess
def check_adb_status(device_id="xxxxx"):
out, err = subprocess.getstatusoutput("adb -s " + device_id + " get-state")
if err == 0:
if 'device' in out:
print("[INFO] ADB is on")
return True
elif 'offline' in out:
print("[WARNING] ADB device is dumb")
return False
else:
print("[WARNING] ADB is abnormal: " + out)
else:
print("[WARNING] ADB is bad: " + err)
return False
if __name__ == '__main__':
check_adb_status(device_id="xxxx")