该模拟器提供了多种网络功能,您可以使用这些功能为您的应用程序设置复杂的建模和测试环境。以下部分描述了模拟器的网络架构和功能。
网络地址空间
模拟器的每个实例都运行在虚拟路由器/防火墙服务之后,该服务将其与开发计算机网络接口和设置以及 隔离开来。仿真设备无法看到网络上的开发计算机或其他仿真器实例,只能通过以太网连接到路由器/防火墙。
每个实例的虚拟路由器管理 10.0.2/24 网络地址空间,路由器管理的所有地址的格式为 10.0.2.@ >xx ,其中 xx 是一个数字。该空间内的地址由模拟器/路由器预先分配,如下所示:
网络地址说明
10.0.2.@>1
路由器/网关地址
10.0.2.@>2
主机环回接口的特殊别名(即开发机器上的 127.0.0.1)
10.0.2.@>3
第一台 DNS 服务器
10.0.2.@>4 / 10.0.2.@>5 / 10.0.2. @>6
可选的第二、第三和第四个 DNS 服务器(如果有)
10.0.2.@>15
模拟设备网络/以太网接口
127.0.0.1
模拟设备环回接口
请注意,所有正在运行的模拟器实例都使用相同的地址分配。这意味着如果您的机器上有两个实例同时运行,每个实例都有自己的路由器,在路由器后面,每个实例的 IP 地址是 10.0.2.@>15。这两个实例被路由器隔离,在同一个网络上看不到对方。了解如何让模拟器实例通过 TCP/UDP 进行通信。
还要注意,开发计算机上的地址 127.0.0.1 对应于模拟器自己的环回接口。如果要访问运行在开发计算机环回接口上的服务(在开发计算机上也称为 127.0.0.1),则应使用特殊地址10.0.2.@>2.
最后,还应该注意的是,模拟设备的预分配地址是特定于模拟器的地址,在真实设备上可能有很大不同(它们也可能是经过 NAT 处理的地址,特别是路由器/防火墙后面的地址) )。
本地网络限制
在模拟器中运行的应用程序可以连接到工作站上可用的网络。但是,该应用程序不是直接连接到硬件,而是通过模拟器进行连接,这就像工作站上的普通应用程序一样。这可能会导致一些限制:
模拟器的虚拟路由器应该能够代表模拟设备处理所有出站 TCP 和 UDP 连接/消息,前提是您的开发计算机网络环境允许它这样做。除了主机操作系统和网络施加的限制外,对端口号或范围没有内置限制。
根据环境的不同,模拟器可能无法支持其他协议(例如用于“ping”的 ICMP)。目前,模拟器不支持 IGMP 或组播。
使用网络重定向
要从其虚拟路由器后面与模拟器实例通信雷电模拟可以设置代理吗,您需要在虚拟路由器上设置网络重定向。然后,客户端可以连接到路由器上指定的访客端口,路由器会将进出该端口的流量引导到模拟设备的主机端口。
要设置网络重定向,您可以在模拟器实例上创建主机到访客端口/地址映射。有两种方法可以设置网络重定向:使用模拟器控制台命令或使用 adb 工具,如下所述。
通过模拟器控制台设置重定向
每个模拟器实例都提供一个控制台,您可以连接到该控制台以发出特定于该实例的命令。您可以使用 redir 控制台命令根据需要为模拟器实例设置重定向。
首先,确定目标模拟器实例的控制台端口号。例如,启动的第一个模拟器实例的控制台端口号是 5554。接下来,连接到目标模拟器实例的控制台,指定其控制台端口号如下:
2.6@>
连接后,使用 redir 命令处理重定向。要添加重定向,请使用以下命令:
2.7@>
在,
tcp 或者 udp 都可以雷电模拟可以设置代理吗,分别设置自己电脑和仿真系统的映射关系。
例如,以下命令设置一个重定向来处理所有传入的 TCP 连接到主机(开发机器)上的端口 127.0.0.1:5000,它会发送这些连接被传递到模拟系统上的端口 10.0.2.@>15:6000:
redir add tcp:5000:6000
要删除重定向,可以使用 redir del 命令。要列出特定实例的所有重定向,您可以使用 . 有关这些和其他控制台命令的更多信息,请参阅使用模拟器控制台。
请注意,端口号受本地环境限制。这通常意味着如果您没有特殊的管理员权限,则不能使用低于 1024 的主机端口号。此外,您不能为计算机上其他进程正在使用的主机端口设置重定向。如果这样做,redir 将生成一条错误消息来解释它。
通过 adb 设置重定向
调试桥 (adb) 工具提供端口转发,这是设置网络重定向的另一种方式。有关详细信息,请参阅 adb 文档。
请注意,除了终止 adb 服务器之外,adb 目前不提供任何删除重定向的方法。
配置模拟器 DNS 设置
启动时,模拟器会读取系统当前使用的 DNS 服务器列表。然后它将最多四个服务器的 IP 地址存储在此列表中,并根据需要模拟地址 10.0.2.@>3、10.< @k0@ >2.@>4、10.0.2.@>5 和 10.0.2.@>6 为它。
在 Linux 和 OS X 上,模拟器通过解析文件 /etc/.conf 获取 DNS 服务器地址。上,模拟器通过调用 () API 获取对应地址。请注意,这通常意味着模拟器会忽略“主机”文件的内容(Linux/OS X 上的 /etc/hosts,%%//HOSTS 上)。
从命令行启动模拟器时,您还可以使用 -dns- 选项手动指定要使用的 DNS 服务器的地址,这是一个逗号分隔的服务器名称或 IP 地址列表。如果您在模拟网络上遇到 DNS 解析问题(例如,使用 Web 浏览器时出现“主机错误”消息),您可能会发现此选项很有用。
将模拟器与代理一起使用
在许多公司网络上,除非您通过特定代理连接(网络管理员拒绝连接),否则无法直接连接到 。Web 浏览器和其他企业应用程序已预先配置为使用代理,因此您可以浏览 Web。对于常规应用程序(如模拟器),他们需要知道代理存在并需要连接到它。
由于 HTTP 的性质,到 Web 服务器的直接连接和通过代理建立的连接会导致不同的 GET 请求。模拟器在与代理通信之前透明地重写来自虚拟设备的 GET 请求以使其工作。
如果您的模拟器必须通过代理服务器访问互联网,您可以在模拟器的屏幕上配置自定义 HTTP 代理。打开模拟器,点击更多图标
,然后单击和代理。在此屏幕上,您可以定义自己的 HTTP 代理设置。
或者,您可以在启动模拟器时从命令行使用 -http-proxy
配置代理的选项。在这种情况下,您可以使用以下格式之一,在
在以下位置指定代理信息:
http://:
要么
http://: @ :
-http-proxy 选项强制模拟器对所有传出 TCP 连接使用指定的 HTTP/HTTPS 代理。当前不支持 UDP 重定向。
或者,您也可以定义一个环境变量用于
的价值 。在这种情况下,您不需要在命令中指定 -http-proxy
,模拟器在启动时检查环境变量的值并自动使用其值(如果已定义)。
您可以使用 -debug-proxy 选项来诊断代理连接问题。
互连模拟器示例
如果您希望一个仿真器实例能够与另一个仿真器实例通信,则必须设置必要的网络重定向,如下所述。
假设您有以下环境:
并且您想在 B 上运行 C 将连接到的服务器,设置如下:
在 B 上设置服务器监听 10.0.2.@>15: 在 B 控制台上,设置从 A:: 到 B:10.0.的重定向@>2.@>15: 在 C 上,让客户端连接到 10.0.2.@>2:
例如,如果你想运行一个 HTTP 服务器,你可以选择 80 as 和 8080 as:
向另一个模拟器实例发送语音通话或短信
模拟器会自动将模拟语音呼叫和文本消息从一个实例转发到另一个实例。要发送语音电话或短信,请分别在模拟器中使用拨号器应用程序或短信应用程序。
要向另一个模拟器实例发起模拟语音呼叫:
在启动器模拟器实例上启动拨号器应用程序。输入您要呼叫的实例的控制台端口号作为要拨打的号码。要确定目标实例的控制台端口号,您可以查看其窗口标题,其中将控制台端口号报告为“()”。按“拨号”。一个新的来电出现在目标模拟器实例中。
要将 SMS 发送到另一个模拟器实例,请启动 SMS 应用程序(如果可用)。指定目标模拟器实例的控制台端口号为短信地址,输入短信文本,然后发送短信。系统会将 SMS 传送到目标模拟器实例。
您还可以连接到模拟器控制台来模拟语音通话或短信。有关详细信息,请参阅和。
评论留言