我可以在Android模拟器中做什么来将它连接到我的本地主机web服务器页面http://localhost或http://127.0.0.1?
我已经尝试过了,但模拟器仍然需要我的请求,如谷歌搜索localhost或更糟糕的是,它说,它没有找到页面,而我的web服务器正常运行。
我可以在Android模拟器中做什么来将它连接到我的本地主机web服务器页面http://localhost或http://127.0.0.1?
我已经尝试过了,但模拟器仍然需要我的请求,如谷歌搜索localhost或更糟糕的是,它说,它没有找到页面,而我的web服务器正常运行。
当前回答
你可以在每次运行模拟器时使用localhost:8000来连接到你机器的localhost(仅在Mac上测试):
adb reverse tcp:8000 tcp:8000
只要把它放到Android Studio终端。
它基本上设置了一个反向代理,其中运行在您的手机上的http服务器接受端口上的连接,并将它们连接到您的计算机,反之亦然。
其他回答
如果你使用Android模拟器:
您可以通过以下ip连接到您的Pc localhost: 10.0.2.2:{你的本地主机端口}=>如果你在xamp中设置了你的机器端口,你必须使用这个端口。在我的例子中是10.0.2.2:2080
你也可以使用你的网络适配器IP地址。在CMD中输入ipconfig并找到你的适配器IP地址:
如果模拟器不能连接到这个ip,关闭模拟器,并从AVD管理器冷引导打开它:
如果您使用Genymotion:
您可以通过此IP: 10.0.3.2:{端口号}连接到计算机localhost 或者如上所述的适配器IP地址:在我的示例中是192.168.1.3:2080
允许安装PWA
首先,安装Android调试桥:
$ sudo apt install adb android-sdk-platform-tools-common
像往常一样启动你的Android模拟器,例如:
$ ~/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86
然后,在Android模拟器的网桥上配置反向代理,将localhost HTTP请求转发到运行在主机计算机上的localhost服务器的适当端口(例如8000),反之亦然:
$ adb reverse tcp:8000 tcp:8000
一个渐进web应用程序(PWA)正在localhost:8000上提供服务 或者127.0.0.1:8000将是可安装的,并连接到它的service-worker.js。而PWA安装不允许从IP地址10.0.2.2。
注意:adb reverse tcp:8000 tcp:8000需要在每次Android模拟器调用后重新发布。
因此,一个bash脚本启动一个Android模拟器,后面跟着一个反向代理,看起来像这样:
#!/usr/bin/env bash
$HOME/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86 > /dev/null 2>&1
adb reverse tcp:8000 tcp:8000
根据文件:
10.0.2.2 -主机环回接口的特殊别名(例如,开发计算机上的127.0.0.1)
查看模拟器网络以获得更多关于模拟器网络的技巧。
对于我的Mac OS mountain Lion设备:
http://10.0.2.2:8888
工作完美!
我需要找出模拟器“Nox App Player”的系统主机IP地址。以下是我如何计算出它是172.17.100.2。
从应用程序商店安装了Android终端模拟器 执行ip link show命令显示所有网络接口。特别令人感兴趣的是eth1接口 发出ifconfig eth1命令,显示net为172.17.100.15/255.255.255.0 开始ping从172.17.100.1开始的地址,找到了“172.17.100.2”。不确定防火墙是否会干扰,但在我的情况下没有
也许这可以帮助其他人解决其他模拟器的问题。