通过 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个回答

2009

查看论坛帖子有没有办法在没有Root的情况下远程查看Android屏幕?-第9楼

  1. 通过USB连接设备,并确保调试功能正常;
  2. adb tcpip 5555。这会使设备开始监听5555端口上的连接;
  3. 使用adb shell netcfgadb shell ifconfig(6.0及更高版本)来查找设备的IP地址;
  4. 现在可以断开USB连接了;
  5. adb connect <DEVICE_IP_ADDRESS>:5555。这将连接到我们在第2步中设置的设备上的服务器;
  6. 现在,您拥有了一个可以像往常一样进行调试的网络设备。
要将服务器切换回USB模式,请运行adb usb,这将使手机上的服务器返回到USB模式。如果您有多个设备,可以使用-s选项指定设备:adb -s <DEVICE_IP_ADDRESS>:5555 usb
无需root权限!
要查找设备的IP地址:运行adb shell,然后运行netcfg。您将在那里看到它。 在使用OSX时查找IP地址,请运行命令adb shell ip route

警告: 离开此选项启用是危险的,您的网络中的任何人都可以连接到您的设备进行调试,即使您处于数据网络中也是如此。只有在连接到可信的 Wi-Fi 时才执行此操作,并在完成后断开连接!


@Sergei建议修改第2行,评论道:“当其他连接持续存在时(例如,模拟器已连接或其他Wi-Fi设备),需要使用-d选项来连接USB设备。”
这些信息对于未来的读者可能很有价值,但我还原到了原始版本,该版本已经获得了178个赞同票。
在某些设备上,即使没有USB电缆,你也可以做同样的事情:
1. 在开发者选项中启用通过网络进行ADB调试: Screenshot Showing the option on

它应该显示IP地址。

2. 运行命令adb connect <DEVICE_IP_ADDRESS>:5555 3. 完成后禁用该设置。

使用Android Studio有一个插件,可以让您在不需要使用终端的任何ADB命令的情况下连接USB调试。


6
输入“adb tcpip 5555”会阻塞终端。这是正常的吗?我等了大约5分钟。 - srowley
37
我需要在断开USB连接后执行 'adb connect <device_ip_address>:5555' 才能使它起作用。 - Nico
11
这需要先使用 USB 连接 adb。有没有在设备上非 root 的方法将 adb 切换到监听 tcpip,或者 setprop service.adb.tcp.port 是唯一的方法? - reedstrm
9
要找到设备的IP地址,您也可以执行:**$ adb shell ip route**。 - Ryan Amaral
77
调试选项中没有"通过网络调试ADB"的选项。 - Parth Anjaria
显示剩余31条评论

155

(无需root权限) 有一种最好、简单且带有用户界面的方法适用于Android Studio

IntelliJ和Android Studio插件被创建用于快速通过WiFi连接您的Android设备,以便在没有USB连接的情况下安装、运行和调试应用程序。只需按下一个按钮,就可以忘记您的USB数据线。

只需安装插件Android WiFi ADB

直接从以下位置下载并安装Android WiFi ADB:

Intellij / Android Studio: Preferences/Settings->Plugins->Browse Repositories

enter image description here

enter image description here

.

记住!首次初始化设备时,您必须使用USB连接。

或者,您可以从JetBrains插件网站下载插件,并手动安装在:首选项/设置->插件->从磁盘安装插件。

您可以轻松连接和管理您的设备......更多信息请阅读这里https://github.com/pedrovgs/AndroidWiFiADB

2023年更新

已在Android Studio 2022.3上进行测试,插件不再运行(即使在下面的解决方法之后)。

但对于大多数旧版Android Studio, 它会显示“不兼容”,而插件仍然可用!

可以通过以下方式解决:

  • 打开已下载的插件的.jar和/或.zip文件。
  • 找到META-INF/plugin.xml文件。
  • 编辑上述的.xml文件,用<depends>com.intellij.modules.androidstudio</depends>替换<depends>org.jetbrains.android</depends>
  • 保存完成!您可以像往常一样通过"从磁盘安装"来安装结果。

5
连接成功,但当我拔掉 USB 数据线时,无线网络会自动断开。 - Sagar Chavada
20
我发现另一个插件更加易用 - 它叫做ADB WiFi Connect - user13107
2
@SagarChavada 它只适用于Marshmallow或更高版本的设备。 - Hardik Maru
1
@SagarChavada 我曾经遇到过同样的问题,并找到了一个解决方案 https://dev59.com/Hq3la4cB1Zd3GeqPRb3y。 - Ahmed Osama
9
插件错误:插件“Android WiFi ADB”不兼容(仅在IntelliJ IDEA中受支持)。 - Panagiss
显示剩余4条评论

59
如果您想在设备上启用无线adb而不需要完全使用USB电缆连接(需要root权限):
  1. 在设备上安装终端应用程序(如Android终端模拟器)
  2. 输入以下内容:
  3. su
  4. setprop服务.adb.tcp.port 5555
  5. 停止adbd
  6. 启动adbd
由于您已经打开了终端,您可以找到设备的IP地址:
ip addr show

然后在您的调试环境中运行以下命令:

adb connect ip.of.the.device

这将使设备列为您可能拥有的任何其他模拟器。请注意,TCP将保持打开状态,直到您重置设备。

如果您经常遇到断开连接的情况,您可能还需要安装一个Wi-Fi Keep Alive应用程序。

记得在连接公共网络时关闭TCP,以保证安全。您可以执行以下操作或简单地重新启动设备:

  1. su
  2. setprop service.adb.tcp.port -1
  3. stop adbd
  4. start adbd

在我的情况下起作用了,而且不需要 USB 连接。 - Roman Bugaian
谢谢,它起作用了。对于那些无法看到其Android设备IP地址的人,请前往“设置>无线> Wi-Fi”,然后长按所连接的Wi-Fi。然后选择“修改网络配置”,勾选“显示高级选项”,然后滚动到“IP地址”。 - viper
$ ./adb shell shell@gtelwifiue:/ $ su /system/bin/sh:找不到su - Bamaco
4
@Bamaco - 需要 root 权限。 - Radu Simionescu
“完全不需要使用USB连接(需要root权限)”这是一个幽默的玩笑。虽然不需要USB,但您必须获取设备的root权限 :) - Farid

57

更新:

Android Studio Bumblebee (2021.1.1) Stable开始,你可以通过扫描二维码将设备与电脑配对,无需使用USB线就可以在Wifi上进行调试。

引用自博客文章:

ADB over Wi-Fi: Bumblebee在使用ADB时,通过简化的流程实现了连接至 Android 11 及更高版本的设备以进行Wi-Fi调试和部署。启用设备上的调试功能后,在新的设备管理器的物理选项卡中选择“使用 Wi-Fi 配对”操作,打开配对向导。 然后按照提供的步骤与已连接到同一网络的设备配对。了解更多。

Pairing Android Phone with Android Studio for Wifi debugging by scanning the QR code


旧文章:

使用 新的Android 11,你可以无需使用USB电缆,通过WiFi来调试你的应用。

引用自Android Studio用户指南

通过Wi-Fi连接设备(Android 11+)

Android 11及更高版本支持使用 Android Debug Bridge (adb) 从工作站无线部署和调试您的应用。例如,您可以将可调试的应用部署到多个远程设备上,而无需通过 USB 物理连接您的设备。这消除了处理常见 USB 连接问题(如驱动程序安装)的需要。

要使用无线调试,请使用配对码将您的设备与您的工作站配对。您的工作站和设备必须连接到同一无线网络。请执行以下步骤以连接到您的设备:

  1. 在您的工作站上,升级到最新版本的SDK Platform-Tools。
  2. 在设备上,开启开发人员选项。
  3. 启用无线调试选项。
  4. 在询问在此网络上允许无线调试吗?的对话框中,点击允许
  5. 选择使用配对码配对设备。注意在设备上显示的配对码、IP地址和端口号(参见图片)。
  6. 在您的工作站上,打开终端并导航到android_sdk/platform-tools
  7. 运行adb pair ipaddr:port。使用第5步中的IP地址和端口号。
  8. 当提示时,请输入第5步中收到的配对码。一条消息将表明您的设备已成功配对。
    none
    Enter pairing code: 482924
    Successfully paired to 192.168.1.130:37099 [guid=adb-235XY] 
  1. (仅适用于Linux或Microsoft Windows) 运行adb connect ipaddr:port。使用无线调试下的IP地址和端口。

Mac用户的第9步怎么办? - Aziz
@Aziz 我认为对于Mac用户来说这并不是必要的,否则他们会提到它的。 - user158
针对设备运行以下命令:adb devices // 获取完整的设备ID,例如 adb-AZ04AB-1234._adb-tls-connect._tcp. adb -s adb-AZ04AB-1234._adb-tls-connect._tcp. shell ls // 应该可以工作并列出该设备上的文件 - fengelhardt
蜜蜂一样地运作得很好!谢谢! - Davis
使用QR码进行大黄蜂配对在Pixel上无法工作,只会显示“设备配对错误”。 - Chapz
显示剩余2条评论

47

我在这里找到了答案(原文):

  1. 将Android设备和ADB主机电脑连接到一个彼此均可访问的公共Wi-Fi网络。我们发现并非所有接入点都适合;您可能需要使用防火墙配置正确以支持ADB的接入点。
  2. 使用USB电缆将设备连接到主机。
  3. 确保ADB在主机上以USB模式运行。

$ adb usb
restarting in USB mode
  • 通过 USB 连接到设备。

  •  $ adb devices
     List of devices attached
     ######## device
    
  • 以tcpip模式重新启动主机adb。

    $ adb tcpip 5555
    restarting in TCP mode port: 5555
    
  • 找出Android设备的IP地址:设置 -> 关于平板电脑 -> 状态 -> IP地址。记住IP地址,格式为#.#.#.#。有时无法找到Android设备的IP地址,就像我这种情况一样。您可以使用以下命令通过adb获取它: $ adb shell netcfg 它应该在结果的最后一行中。

  • 将adb主机连接到设备:

  • $ adb connect #.#.#.#
    connected to #.#.#.#:5555
    
  • 拔掉设备上的USB电缆,并确保您仍然可以访问该设备:

  • $ adb devices
    List of devices attached
    #.#.#.#:5555 device
    

    现在您可以开始使用了!

    如果 adb 连接丢失:

    1. 确保您的主机仍连接到与 Android 设备相同的 Wi-Fi 网络。
    2. 通过再次执行 "adb connect" 步骤来重新连接。
    3. 或者,如果这样不起作用,请重置 adb 主机:

     adb kill-server
    

    然后从头开始。


    2
    工作得很完美,但在连接到设备IP之前,我必须先拔掉我的电缆才能让设备出现在连接列表中。 - Ankur Teotia
    adb kill-server 对我有用。 - Jithin Jude

    36

    adb 工具确实可以通过 TCP/IP 连接到设备。但是,adbd 通常不会监听 TCP 连接。

    如果你想让它运行起来,你需要一个工程设备(也就是你需要 root 权限)。然后按照这篇帖子中的说明操作:

    如何使用 ADB 通过 TCP 连接到 Android 设备?

    由于这只适用于 eng 设备,它并没有得到官方支持。请自行承担风险,可能会出现错误等情况。


    3
    不必担心,我正在使用Nexus One手机并准备好动手了 :) - Naftuli Kay
    1
    我尝试连接多个设备(显然是两个)……但无法实现!有没有办法通过WiFi连接多个设备进行调试(不使用USB)… - erkuy
    这个官方指南怎么样?https://developer.android.com/studio/command-line/adb.html - MaxF

    36

    在 Android 11 的开发者选项中,有一个名为无线调试的设置。确保您的笔记本电脑和手机连接到同一网络,然后执行以下两个命令。请注意,配对时使用的端口与连接时使用的端口不同,您只需要在第一次进行配对(以后只需连接即可)。

    adb pair ipaddr:port

    adb pair 192.168.1.6:42049
    
    // will output
    Enter pairing code: 696686
    Successfully paired to 192.168.1.6:42049 ...
    

    adb connect ipaddr:port

    adb connect 192.168.1.6:37203
    
    // will output
    connected to 192.168.1.6:37203
    

    添加 这些命令只能在Android Studio终端上使用,如果你在“platform-tools”目录中。 cd C:\Users\用户名\AppData\Local\Android\Sdk\platform-tools>


    2
    使用Android Studio无法连接,但是使用上述命令成功连接。 - Bek
    无需打开Android Studio进行配对。如果您使用React Native进行编码,则非常好。 - iSa

    29

    对于所有这些,都存在一种更好的方法(最简单的方法):

    1) 存在一个名为Android wifi ADB的Android Studio插件。

    2) 转到“文件”->“设置”->“插件”->“浏览存储库”。

    3) 查找Android WiFi ADB,单击安装,然后按提示重启

    4) 您将看到一个新图标,即您的新插件。

    现在让它工作:

    5) 进入手机的开发人员选项并启用调试(必须)。

    6) 还要启用允许TCP/网络调试

    7) 通过USB连接您的手机,并确保手机和您的电脑/笔记本电脑连接到同一个网络(热点或WiFi)。

    8) 单击新图标(即您的ANDROID Wifi ABD)。

    9) 您的手机会被检测到并通过WiFi /热点连接上,因此现在可以断开USB连接。这是一个一次性的过程,因此您可能不需要始终将手机连接到USB。

    这将节省您的手机不规则收费,并且也是解决短USB电缆的方法。


    WiFi ADB ULTIMATE插件还可以帮助。 - Prabs
    它成功地连接了,但是当我拔掉USB电缆时,WiFi会自动断开。 - Sagar Chavada
    抱歉,它(不再)起作用了。我在Android Studio 4.1.1中看到了一个不兼容的对话框,“仅支持Intellij IDE”。 - hannes ach

    21

    安装 Android WiFi ADB 插件

    从 Android Studio 直接下载并安装 Android WiFi ADB 插件:

    文件 > 设置->插件->浏览存储库->搜索 Android WiFi ADB ->安装->首次使用时通过电缆连接->点击 "连接"-> 现在拔掉电缆并开始进行调试/运行。

    请参考下面的截图

    Android WiFi ADB


    2
    这对我来说非常容易实现。感谢Tarit Ray的分享。 - Nouman Ch
    谢谢,完成这一步后,一旦显示连接成功,我就拔掉了USB线,然后就能够通过WiFi进行调试了。 - Sanjeev
    没问题,谢谢@NoumanCh,还有Sanjeev,我从Android官方得到了这个答案。 - undefined

    19
    如果您正在使用Android 11,请多次点击版本号以激活开发者选项,然后转到“设置”>“高级”>“开发者选项”。滚动到调试并启用“无线调试”复选框。然后通过触摸“无线调试”打开菜单调试。选择“使用配对代码配对设备”,您将看到配对代码的地址。在您的桌面终端中编写此命令以与Android设备配对。
    adb pair 192.168.XXX.XXX:XXXX   <--------- the address showing on screen under paring code
    

    使用配对码进行连接。

    但是等一下,我们还没有连接到adb。 成功配对设备后,您可以在打开无线调试选项时随时连接adb。从现在开始,每次使用adb之前,您无需再使用配对地址,而是使用输入无线调试菜单时显示的给定地址即可。

    adb connect 192.168.XXX.XXX:XXXX    <--- this address shows inside wireless debug menu
    

    干得好,伙计 :) - Broken Arrow
    这对我在Android Flamingo上有效,第二个指令非常重要。 - prateek31

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