SDK Manager

The Android SDK Manager: Platforms, Build Tools and Emulator Images

The SDK is a set of independently versioned packages that sdkmanager (or Android Studio 234 's SDK Manager) installs by package path. cordova-android 15.1.0 compiles against API 36 and requires Build Tools 36.0.0 or newer. platform-tools holds adb; platforms;android-36 holds the android.jar stubs your code compiles against; build-tools;36.0.0 holds aapt2, d8, zipalign and apksigner; and emulator plus a system image let you boot a virtual device.

Accepting the licenses and installing the packages this book uses
sdkmanager --licenses
sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" \
  "emulator" "system-images;android-36;google_apis;x86_64"

google_apis images carry the Google Play 1 services APIs but no Play Store app, which google_apis_playstore images add. Choose x86_64 on Intel and AMD hosts and arm64-v8a on Apple silicon, so the hypervisor can accelerate the image. --list_installed prints a table wider than this page, so filter it:

Listing installed SDK packages
sdkmanager --list_installed 2>/dev/null |
  awk -F' *[|] *' '/;|^  (emulator|platform-tools)/ {printf "%-45s %s\n", $1, $2}'
Output
  build-tools;35.0.0                          35.0.0
  build-tools;36.0.0                          36.0.0
  build-tools;37.0.0                          37.0.0
  cmake;3.22.1                                3.22.1
  emulator                                    37.1.11
  platform-tools                              37.0.1
  platforms;android-36                        2
  platforms;android-37.0                      2
  system-images;android-36;google_apis;x86_64 7

API 37 and Build Tools 37 serve Jetpack Compose 234 (Android with Kotlin), and CMake serves React Native 36,878 (React Native). Three Build Tools versions are harmless: cordova-android picks the highest installed one within the major version of its minimum, so it uses 36.0.0. Note the dotted android-37.0: from API 37 on, platform packages carry a minor version.