今天帮妹子解决app开发的问题的时候遇到了这个情况,就是某个app套了html5的壳,目标是宿主机上监听在本地127.0.0.1的web服务,那么,问题来了。安卓机子上的app要访问宿主机的127.0.0.1地址,填写127.0.0.1又不行,因为对于安卓机来说127.0.0.1是他自己本身,它访问127.0.0.1只能访问到它自己。
如果我们填写主机的内网地址,比如192.168.1.200,那么假如你这台电脑换了wifi就又要重新填过。
通过网上查询的方法得知,AVD对于宿主机的默认地址一般是10.0.2.2或者10.0.2.3,试了下,无效。
这个时候想到可以通过adb的shell功能进入安卓虚拟机来查看虚拟机里面对于宿主机的ip定义是怎么样的。
于是在adb所在的目录下使用以下命令:
1 | adb -s emulator-5554 shell |
进入shell之后输入
1 | getprop |

之后在网络信息中可以看到宿主机对于安卓机的虚拟ip为172.16.2.2,使用这个虚拟ip访问即可。
说些什么吧!