You might need to test your app on a virtual device using more than
just basic touch screen gestures and phone movements. For example, you might want to
simulate different locations or network conditions. This page covers advanced
emulator features and different ways to launch the emulator with Android
Studio.

The other pages in this section cover even more advanced ways to use the
emulator, which require you to use the terminal. These more specialized use cases are:

- If you aren't using Android Studio, you can [start the emulator from the command line](https://developer.android.com/studio/run/emulator-commandline).
- To test features including fingerprint validation, or to change your virtual device's battery state, you can [send emulator console commands](https://developer.android.com/studio/run/emulator-console).
- To have two emulator instances that can communicate to each other, or to set up other complex network architectures, you can [set up emulator networking](https://developer.android.com/studio/run/emulator-networking).

For most app developers, the
[basic emulator navigation capabilities](https://developer.android.com/studio/run/emulator#navigate) and
the features on this page cover your testing needs. For a side-by-side
comparison of what you can do with the emulator depending on how you interact
with it, see [the emulator feature comparison](https://developer.android.com/studio/run/emulator-comparison).

## Limitations

The Android Emulator doesn't include virtual hardware for the following:

- Bluetooth
- NFC
- SD card insert/eject
- Device-attached headphones
- USB

The watch emulator for Wear OS doesn't provide the Overview (Recent Apps)
button, D-pad, or fingerprint sensor.