阅读 91

虚拟机上通过adb连接物理机上的Android模拟器

平时用模拟器调试,用的比较多的是夜神或者逍遥模拟器

那么在物理机上用adb连模拟器:

adb connect 127.0.0.1:21513

端口百度一下应该就有了,多开的情况下端口会递增,夜神是62001,62025,62026......,逍遥是21503,21513......

 

我们有些情况下需要使用linux上的软件与Android设备进行adb连接,而linux一般都是在Windows上开个vmware虚拟机来实现,这个时候如果没有真机(或者必须用模拟器)的情况下,就要从虚拟机连接物理机上的Android模拟器了。因为Linux上的模拟器本来速度就感人,再加上是在虚拟机里面。

 

那么虚拟机通过adb连物理机的安卓模拟器应该怎么办呢?
一开始我尝试了Wifiadb,结果在模拟器装Wifiadb,物理机和虚拟机都连不上

那么就直接连肯定是连不上的,需要端口转发,凭感觉试了一下,果然不行。然后就去查找了一下关于端口转发的配置方法,这里记录一下。

简单来说,如果需要虚拟机连上物理机的模拟器,就要在物理机找一个端口作为监听端口,然后转发到对应模拟器的端口即可,监听发起TCP的端口可以设定为虚拟机的ip,也可以直接0.0.0.0设为监听所有

我并不确定转发到的对象设定的ip地址是物理机,还是模拟器的ip地址,后来才想明白两者都用的是本机的ip地址(模拟器在adb shell里面ifconfig查看到的ip地址根本ping不通的)

大概画了下本机内部的网络架构:

然后在本地Windows以管理员身份运行cmd,然后执行命令

netsh interface portproxy add v4tov4 listenport=18888 listenaddress=10.0.2.15 connectport=21513 connectaddress=127.0.0.1

其中,listenport是自己设定一个端口,这里我设定为18888,你也可以设成别的

然后listenaddress是虚拟机的ip,如果你不只一台虚拟机有这个需求,这里也可以设成0.0.0.0,监听所有ip地址向18888端口的访问

connectport是原来在Windows连Android模拟器的端口

connectaddress如果你的模拟器就在windows本地开的就127.0.0.1,当然如果想远程连另一台电脑上的,可以改成另一台电脑的ip,同样在那台电脑上也要做端口转发

 

然后就可以在虚拟机上通过adb连模拟器啦

adb connect 192.168.255.10:21513

最后,如果想要删除转发规则,执行命令

netsh interface portproxy delete v4tov4 listenaddress=10.0.2.15 listenport=18888

 

原文:https://www.cnblogs.com/voyage1969/p/14876449.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐