如何连接到AVD

时间:2011-09-16 15:44:04

标签: android connect avd

我正在尝试编写自己的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;
    }
在我的手机上一切正常,但是当我在AVD上运行我的应用程序时,显示ip:10.0.2.15 我无法连接到它。 有没有办法连接我在AVD上运行的应用程序? 如果它确实重要,我的应用程序使用端口8080。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

虽然我不直接知道您的问题的答案,但我知道当从AVD连接到您的计算机时,您必须使用10.0.2.2,因为您的AVD基本上落后于另一个“路由器”。它没有从您的路由器获得本地LAN IP。有关详细信息,请参阅this问题。从this链接,他引用了:

  

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