如何连接到AVD

Gas*_*ski 6 android connect android-virtual-device

我正在尝试编写自己的android http服务器.这很好,但我的AVD有问题.每次我想测试更改时,我都不想将我的应用程序下载到手机上.我想通过AVD连接到我的应用程序.要获取IP地址我正在使用此功能:

private String getLocalIpAddress() {


        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); }
                }
            }
        } catch (SocketException ex) {
            Log.e("ServerActivity", ex.toString());
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

在我的手机上一切正常,但当我在AVD上运行我的应用程序时,它显示ip:10.0.2.15,我无法连接到它.有没有办法连接我在AVD上运行的应用程序?如果它确实重要我的应用程序使用端口8080.

小智 6

Telnet到设备(假设它在5554端口):

telnet localhost 5554

在Android控制台提示符处使用重定向:

redir add tcp:8080:8080

将浏览器指向"http://127.0.0.1:8080/"现在应该发送并接收到AVD.

友情提供:http://www.rhill.co.uk/?p = 35


Jac*_*ack 0

虽然我不直接知道您的问题的答案,但我确实知道当从 AVD 连接到您的计算机时,您必须使用 10.0.2.2,因为您的 AVD 本质上位于另一个“路由器”后面。它不会从您的路由器获取本地 LAN IP。请参阅问题以获取更多信息。从这个链接中,他引用了:

模拟器的每个实例都在虚拟路由器/防火墙服务后面运行,该服务将其与开发计算机的网络接口和设置以及互联网隔离。模拟设备无法看到您的开发计算机或网络上的其他模拟器实例。相反,它只看到它通过以太网连接到路由器/防火墙。