通过 Wi-Fi 运行/安装/调试 Android 应用程序?

1299
我认为有一种方法可以通过Wi-Fi在开发中测试您的应用程序。这可能吗?
我希望能够无线开发,解放手机束缚。

61
更不用说,如果您需要调试与USB附加设备通信的应用程序。 - Dax Fohl
7
你现在可以使用这个,安装这个插件后,即可享受通过 WiFi 进行调试的便利。 - Devendra Singh
5
可能是 如何通过 TCP 连接 ADB 到 Android 设备? 的重复问题。 - hcarrasko
从Android 11及以上版本开始,您可以扫描QR码并连接物理设备,无需任何USB电缆。 - user2786685
如果您不介意,能否请您采纳我的答案呢?因为当前被采纳的回答已经过时,现在有更好的方法来通过Wifi调试应用程序。 - user158
显示剩余2条评论
42个回答

12

经过长时间的搜索,我找到了:

我必须奔跑

adb connect <device_ip_address>:5555 

拔掉USB后


10

我写了一个shell脚本,可以让您通过Wi-Fi调试Android设备。

以下是代码:

#!/usr/bin/env bash
#Notice: if unable to connect to [ip]:5555,
#try adb kill-server then try again.

adb shell ip route > addrs.txt
#Case 1:Nexus 7
#192.168.88.0/23 dev wlan0  proto kernel  scope link  src 192.168.89.48

#Case 2: Smartsian T1,Huawei C8813
#default via 192.168.88.1 dev eth0  metric 30
#8.8.8.8 via 192.168.88.1 dev eth0  metric 30
#114.114.114.114 via 192.168.88.1 dev eth0  metric 30
#192.168.88.0/23 dev eth0  proto kernel  scope link  src 192.168.89.152  metric 30
#192.168.88.1 dev eth0  scope link  metric 30

ip_addrs=$(awk {'if( NF >=9){print $9;}'} addrs.txt)

echo "the device ip address is $ip_addrs"

echo "connecting..."

rm addrs.txt

adb tcpip 5555

adb connect "$ip_addrs"

1
较新版本的工具需要指定端口,因此请将最后一行更改为adb connect "$ip_addrs:5555"以使其再次正常工作。无论如何,感谢提供脚本。 - Aleksander Lech

9

以下步骤是标准操作流程(与以前的答案大部分相同):

  • adb tcpip 5555。
  • adb connect your_device_ip_address。
  • adb devices(查看设备是否连接)。

但在某些情况下,上述步骤会出现错误,例如“无法连接到设备。确保您的计算机和设备连接到同一WiFi网络。”而您注意到设备已经连接到同一个网络。

在这种情况下,请安装此插件“Wifi ADB Ultimate”,并按照以下步骤进行操作:

  1. 通过USB将设备连接一次。
  2. 刷新列表以检查是否已连接。
  3. 转到“关于手机”>“状态”>“IP地址”并记录您的IP地址(例如198.162.0.105)。
  4. 回到Android Studio,并像下图所示填写该IP地址,然后点击运行按钮。

enter image description here


现在,您可以继续操作了!


我有几个IP地址,但我选择从192.168.0.***开始,然后它就可以工作了! - kirkadev

8
为了补充@usethe4ce的答案,如果你有多个设备或模拟器,adb tcpip 5555会显示error: more than one device/emulator
在这种情况下,你需要提供所需设备的序列号:
  1. adb devices

    已连接的设备列表

    33001229 设备

    emulator-5554 设备

  2. adb -s 33001229 tcpip 5555
  3. 找到您设备的IP地址,在我的情况下,我可以从设备的wifi连接设置中找到它。
  4. adb connect xxx.xxx.xxx.xxx:5555

7
尽管已经有很多好的答案,但这是我给未来自己的两分钱意见:P,也是给想要快速方便解决问题的人提供的。
对于Mac电脑:
  • connect the device using USB first and make sure debugging is working. Disconnect any other devices and quit emulators.
  • open terminal and run the following script

    adb tcpip 5555
    adb connect $(adb shell ifconfig | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d: -f2):5555
    
  • disconnect USB connection and the device should be available for WiFi debugging

说明:

adb tcpip 5555 命令让设备开始监听端口5555的连接请求。

adb connect $(_ip_address_fetched_):5555


6

对于Windows:

步骤1. 创建一个批处理文件,包含以下命令,并将文件命名为w.bat

步骤2. 复制以下内容到w.bat中,并将其保存在Windows系统的%path%中的任何文件夹中。

echo ***Get phone in Wi-Fi mode***
echo ***Get phone in Wi-Fi mode***

adb devices
echo ***Remove cable from the phone now***
adb tcpip 9000

adb connect 192.168.1.1:9000
adb connect 192.168.1.2:9000
adb connect 192.168.1.3:9000
adb connect 192.168.1.4:9000
adb connect 192.168.1.5:9000
adb connect 192.168.1.6:9000

//<-- 到这里为止 -->

步骤 3. 使用数据线连接您的手机和电脑

步骤 4. 确保手机处于 Wi-Fi 模式

步骤 5. 当批处理文件提示您时,拔掉数据线

步骤 6. 在 Windows 命令提示符中键入 w.bat(开始 -> 运行 -> 键入 CMD,按下 Enter)(黑屏是 Windows DOS 命令提示符),如果您将其复制到其中一个路径文件夹中,则可以从任何位置运行,否则请从创建此文件的文件夹运行。

批处理文件的输出将类似于以下内容:

C:\Windows\System32>w

C:\Windows\System32>echo ***Get phone in Wi-Fi mode***
***Get phone in Wi-Fi mode***

C:\Windows\System32>echo ***Get phone in Wi-Fi mode***
***Get phone in Wi-Fi mode***

C:\Windows\System32>adb devices
List of devices attached
d4e9f06 device

C:\Windows\System32>echo ***Remove cable from the Phone now***
***Remove cable from the Phone now***

C:\Windows\System32>adb tcpip 9000
restarting in TCP mode port: 9000

C:\Windows\System32>adb connect 192.168.1.1:9000
unable to connect to 192.168.1.1:9000:9000

C:\Windows\System32>adb connect 192.168.1.2:9000
connected to 192.168.1.2:9000

C:\Windows\System32>adb connect 192.168.1.3:9000
unable to connect to 192.168.1.3:9000:9000

C:\Windows\System32>adb connect 192.168.1.4:9000
unable to connect to 192.168.1.4:9000:9000

C:\Windows\System32>adb connect 192.168.1.5:9000
unable to connect to 192.168.1.5:9000:9000

C:\Windows\System32>adb connect 192.168.1.6:9000
unable to connect to 192.168.1.6:9000:9000

注意1:在输出中找到此内容(忽略所有“无法连接”的错误)。
connected to xxx.xxx.x.x:9000

如果您看到此结果,请从 PC 上拔掉电缆,然后转到 Eclipse 并运行以安装应用程序在设备上;就是这样。
注意2:断开连接或关闭无线模式:输入以下命令。它应该会显示正在重新启动为 USB 模式,在此阶段,PC 和计算机不应该使用电缆连接。
C:\Users\dell>adb usb
restarting in USB mode

注意3:查找手机IP地址的步骤(摘自Stack Overflow)
查找我的手机的IP地址:
a. Dial *#*#4636#*#* to open the Testing menu.
b. In the Wi-Fi information menu: click Wi-Fi Status
c. Wi-Fi status can be blank for the first time
d. Click Refresh Status
e. In the IPaddr: <<IP ADDRESS OF THE PHONE IS LISTED>>

注意事项4:我的手机Wi-Fi连接IP地址范围通常如下所述的IP地址:

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192.168.1.6

注意事项5:如果你得到任何其他序列的IP地址,这些IP地址一直被重新分配给你的手机,你可以在w.bat文件中更改IP地址。

注意事项6:这是一种“暴力”方法,它消除了所有手动劳动,以便找到IP地址并连接到Eclipse / Wi-Fi。

成功提示7:简而言之,常规活动将是这样的:

Step 1. Connect PC and Wi-Fi via a cable
Step 2. Start CMD - to go to Windows DOS prompt
Step 3. Type "w"
Step 4. Find connected command in the output
Step 5. Success, remove cable and start using Eclipse

如果你使用 @echo 而不是 echo,在运行批处理文件时会减少噪音。 - Stephan Henningsen

6

最好且超级简单的方法是:

  1. 创建一个批处理文件:

adb devices

adb tcpip 5555

adb connect 192.168.9.120:5555 (你的手机IP地址为xxx.xxx.x.xxx:5555)

  1. 将此文件放在Android SDK平台工具文件夹中。 例如:C:\Users\'user_name'\AppData\Local\Android\Sdk\platform-tools

  2. 右键单击文件 > 发送到 > 桌面(创建快捷方式)

  3. 就这样……

现在,您只需要通过USB连接手机,然后打开桌面快捷方式并断开手机连接即可……


需要root权限吗? - CoolMind
@CoolMind 不需要 Root。 - Ankesh kumar Jaisansaria
同意。我已经完成了无需 root。在我的情况下,我无法获取屏幕截图,而且经常会丢失日志。因此,我拒绝了 Wi-Fi 调试。 - CoolMind

5
  1. 在设备设置中进入“开发者选项”->“撤销USB调试授权”。
  2. 通过USB连接设备,并确保调试功能正常。
  3. adb tcpip 5555
  4. adb connect <DEVICE_IP_ADDRESS>:5555
  5. 断开USB连接
  6. adb devices

5
从搜索和一些答案中,我使用了这种方法并且它很有效。你必须知道tcpip不总是5555,你必须找到它,只需按照以下步骤:首先需要下载platform-tools。 https://developer.android.com/studio/releases/platform-tools.htmlplatform-tools文件夹提取到C驱动器,并在那里运行Powershell(右键单击 >> PowerShell >> Open here)。 #通过USB线连接手机
PS C:\platform-tools> adb kill-server
PS C:\platform-tools> adb shell ip route > addrs.txt

#这将为您提供TCP/IP

* daemon not running; starting now at tcp:5037 
* daemon started successfully
PS C:\platform-tools> adb tcpip 5037
restarting in TCP mode port: 5037

#断开手机连接 #adb connect <phone_ip>:5037

PS C:\platform-tools> adb connect 192.168.43.1:5037
connected to 192.168.43.1:5037

现在你可以在Android Studio中查看你的手机


我有一部安卓8手机,非常想通过WIFI而不是USB测试我的应用程序。我们的答案解决了我的问题。通过WIFI调试应用程序非常容易。谢谢。 - Saad Zahoor
仍适用于搭载Android 6.0的平板电脑。 - Gleichmut

3
>##    open command prompt with Run as Administrtor ##

    adb connect ipdevice:5037

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接