Network Address Space
Each instance of the emulator runs behind a virtual router/firewall service
that isolates it from your development machine's network interfaces and settings
and from the internet. An emulated device can not see your development machine
or other emulator instances on the network. Instead, it sees only that it is
connected through Ethernet to a router/firewall.
The virtual router for each instance manages the 10.0.2/24 network address
space — all addresses managed by the router are in the form of
10.0.2.<xx>, where <xx> is a number. Addresses within this space are
pre-allocated by the emulator/router as follows:
Network Address |
Description |
10.0.2.1 |
Router/gateway address |
10.0.2.2 |
Special alias to your host loopback interface (i.e., 127.0.0.1 on your
development machine) |
10.0.2.3 |
First DNS server |
10.0.2.4 / 10.0.2.5 / 10.0.2.6 |
Optional second, third and fourth DNS server (if any) |
10.0.2.15 |
The emulated device's own network/ethernet interface |
127.0.0.1 |
The emulated device's own loopback interface |
Note that the same address assignments are used by all running emulator
instances. That means that if you have two instances running concurrently on
your machine, each will have its own router and, behind that, each will have an
IP address of 10.0.2.15. The instances are isolated by a router and can
not see each other on the same network. For information about how to
let emulator instances communicate over TCP/UDP, see Connecting Emulator Instances.
Also note that the address 127.0.0.1 on your development machine corresponds
to the emulator's own loopback interface. If you want to access services running
on your development machine's loopback interface (a.k.a. 127.0.0.1 on your
machine), you should use the special address 10.0.2.2 instead.
Finally, note that each emulated device's pre-allocated addresses are
specific to the Android emulator and will probably be very different on real
devices (which are also very likely to be NAT-ed, i.e., behind a
router/firewall)