Download the command-line only tools. The commands here refer to the bin/ directory within that download.

Configure your ANDROID_HOME environment variable:

export ANDROID_HOME=/opt/android

Install the SDKs (todo: check if this is actually necessary):

sdkmanager "platforms;android-23" "build-tools;23.0.1" "add-ons;addon-google_apis-google-23"

and the system images:

sdkmanager "system-images;android-23;google_apis;x86"

Install the emulator:

sdkmanager emulator

List the available Android Virtual Devices:

avdmanager list

Create one with the system image installed earlier:

avdmanager create avd --name "Nexus5" --package "system-images;android-23;google_apis;x86"

Enable keyboard support by setting hw.keyboard=yes to $HOME/.android/avd/Nexus5.avd/config.ini (see StackOverflow).

Due to a bug, you must run the emulator from within the directory created from the original zip file (see StackOverflow):

emulator -avd Nexus5

To set a better resolution:

emulator -avd Nexus5 -skin 1080x1920

Install as usual with react-native run-android.

Ctrl+M will open the React Native menu.

Update: August 23, 2018

Since the -skin parameter is deprecated (and doesn't quite look right anyway), update your skin's config.ini to include:

hw.lcd.density=320
hw.lcd.width=1080
hw.lcd.height=1920