Android Studio无线调试软件

Android 开启无线调试

Github 源码地址

环境要求

  • PC端需要配置Adb环境
  • 使用python脚本需要python3.0+环境

原生命令行方法调用

  1. 把设备通过数据线连接到PC中
  2. 执行命令adb devices -l 有设备即可
  3. 打开Android设备调试端口5555 执行命令adb tcpip 5555
  4. 打开成功后,此时可拔掉数据线
  5. 执行无线连接命令adb connect 172.16.10.11
  6. 连接成功即可拔掉数据线

使用脚本,一键连接

既然是执行固定操作,那么我们就可以通过脚本控制,

  1. 获取设备信息
  2. 打开设备调试端口
  3. 获取指定设备的IP地址
  4. 连接IP
  5. 连接成功,拔掉数据线
    代码如下:
import os
import sys
import re
import time

import DeviceModule

if __name__ == '__main__':
    deviceModel = DeviceModule.Device_Model()
    device_id = deviceModel.select_devices()
    time.sleep(2)
    cmd = 'adb -s {} tcpip 5555'.format(device_id)
    print(cmd)
    cmd_exr = os.popen(cmd)
    result = cmd_exr.read()
    # print(result)
    if result.lstrip().startswith('restarting in') and result.rstrip().endswith('5555'):
        print('\033[1;32m5555 端口已打开\033[0m')
        time.sleep(1)
        cmd = 'adb -s {} shell ifconfig wlan0'.format(device_id.strip())
        print(cmd)
        cmd_exr = os.popen(cmd)
        result = cmd_exr.read()
        for line in result.splitlines():
            if line.lstrip().startswith('inet addr'):
                pattern = re.compile(r'[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
                ip_str_obj = pattern.search(line)
                ip_str = ip_str_obj.group(0)
                print('连接IP:\033[1;33m %s\033[0m' % ip_str)
                cmd_exr = os.popen('adb connect {}'.format(ip_str))
                result = cmd_exr.read()
                if result.lstrip().startswith('connected') and result.rstrip().endswith('5555'):
                    input('连接成功')
                else:
                    input('连接失败:' + result)
                break
    else:
        print("端口打开失败: %s" % result)


解析设备列表

文件名:DeviceModule.py

import os
import sys


def get_device(device_line):
    arr = device_line.split()
    # print(arr)
    dev_mod = Device_Model()
    dev_mod.id = arr[0]
    dev_mod.status = arr[1]
    try:
        temp_arr = arr[4].split(':')
        dev_mod.device = temp_arr[1]
    except Exception as e:
        dev_mod.device = '无法获取'

    try:
        temp_arr = arr[2].split(':')
        dev_mod.product = temp_arr[1]
    except Exception:
        dev_mod.product = '未知'

    try:
        temp_arr = arr[3].split(':')
        dev_mod.model = temp_arr[1]
    except Exception:
        dev_mod.model = '未知'

    return dev_mod


class Device_Model:
    def __init__(self):
        self.id = ''
        self.status = ''
        self.product = ''
        self.model = ''
        self.device = ''
        self.transport_id = ''

    def select_devices(self):
        cmd_exr = os.popen('adb devices -l')
        result = cmd_exr.read().rstrip()
        lines = result.splitlines()

        if len(lines) == 2:
            device = get_device(lines[1])
            print('\033[1;32muse device %s \033[0m' % device.id)
            return device.id
        else:
            dev_list = []
            dev_list.clear()
            for index, dev in enumerate(lines):
                if index == 0:
                    continue
                dev = get_device(dev)
                print('\033[1;33m%d、%s %s - %s %s\033[0m' % (index - 1, dev.id, dev.model, dev.device, dev.status))
                dev_list.append(dev.id)
            sel = 0
            if len(dev_list) == 0:
                print('没有设备')
                input('按下 Enter 结束......')
                sys.exit(0)
            try:
                sel = int(input('存在多个设备,请输入序号[0]: '))
            except Exception as e:
                sel = 0
            if sel >= len(dev_list):
                sel = len(dev_list) - 1
            return dev_list[sel]


来个预览:
执行结果
多个设备时:
执行结果

查看设备列表可以发现 设备列表
设备列表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值