Emulator 30 (GNU/Linux)

Principle of operation

The Android SDK provides the Android Emulator, which are built from a different source tree than the SDK Tools since 25.3.0 (March 2017).

Recreate matching build environment

The current reference build environment for this version is Ubuntu 14.04.

Build dependencies

apt-get install -y python ninja-build git realpath zip

Preparing the source tree

Install repo.

Checkout the source:

# https://developer.android.com/studio/releases/emulator#emulator_for_arm64_hosts
~/bin/repo init --quiet -u https://android.googlesource.com/platform/manifest -b emu-30-release --depth=1
# --depth=1 mostly useless as it's a git "snap"
~/bin/repo sync --quiet --current-branch -j4
# ~25mn dl with good connectivity / ~25mn checkout on SSD
# 54GB (inc. 11G .repo))

Building the emulator

# https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/android/docs/DEVELOPMENT.md
cd external/qemu/
android/rebuild.sh --no-tests  # a few obscure test failures

# ~25mn, 69GB (inc. 11GB .repo)

This result is in external/qemu/objs/distribution/emulator/ and needs to be manually zip'd, the only dist script is buggy and appears unused.

We just compiled Emulator 30.3.5.0!

TODO

prebuilts

We should be able to compile without (untrusted) prebuilts

 windows

android/rebuild.sh --no-tests --target=windows complains about missing msvc prebuilt. --mingw seems obsoleted / removed.

Automated build recipe

https://gitlab.com/android-rebuilds/auto/tree/master/emu-30