How to install Android SDK and setup AVD Emulator without Android Studio

Michael Wallace
Michael Wallace
Published in
7 min readNov 11, 2019

If you are trying to develop to Android, you probably will end up installing the Android Studio to get the Android SDK and the AVD Emulator working properly.

But if you are using another code editor, like Sublime Text or VSCode, installing the Android Studio will just mess up with your setup and consume your precious RAM for no good reason.

I had a hard time figuring out how to properly do this setup due the lack of documentation about it, so i hope this article helps you. 🙂

Recommended previous knowledge:

  • SDK (Standard Development Kit); Read about on Wikipedia;
  • AVD (Android Virtual Device); Read about on docs;
  • CLI (Command Line Interface); Read about on Wikipedia;
  • Android API levels; Read about on Vanderbilt University;
  • How to open, navigate and execute files in your OS terminal;
  • Know what are environmental variables;

Understanding the Android SDK

Basically, the Android SDK is a bunch of packages necessary to develop for Android.

These packages stays in subfolders of a folder called “sdk” (or “android-sdk” sometimes). You do not need to know how these packages really work, just what they do.

The picture below is my Android SDK folder, these are the basic packages you will need in order to get everything working properly.

Here is a brief explanation of each package:

  • tools: This package is mainly used to manage the other packages and to create AVD’s;
  • emulator: As the name suggest, this is the Android emulator;
  • platform-tools: Some tools to communicate with Android devices when you plug then in your computer;
  • patcher: This package is automatically downloaded by the SDK. I didn’t find what exactly this is for, so just leave it as it is;

The folders bellow contain sub-folders with the packages for each Android API level.

  • platforms: The platform packages are required to compile your app for the specified API level.
  • system-images: These are the android images used in the emulator.
  • build-tools: These are necessary to build your Android apps

Installing the Android SDK

In order to install the SDK we will use the Command Line Tools. These are some quite simple CLI’s used to manage the Android SDK. You can read the documentation here for more details.

Step 1 — Download the tools package

First, you need to download the tools package. And with this package you can download the others.

  1. First, go to the Android Studio download page: https://developer.android.com/studio;
  2. Then click in “Download Options”;
  3. There you will find a table named “Command line tools only”;
  4. This table contain some zip files. Download the appropriate file for your system (Windows, Mac or Linux);
  5. Extract this zip and you will get a folder called tools: This is the tools package i explained earlier;

Create a folder anywhere you prefer to place your SDK. I recommend you to stick with one of these commonly used places:

on Windows:

  • Globally: C:\Android\sdk or C:\android-sdk (this is not default, but i usually set my SDK here on Windows)
  • One user only: C:\Users\<username>\AppData\Local\Android\sdk

on Linux

  • Globally: /opt/android/sdk or /opt/android-sdk
  • One user only: /home/<username>/.android/sdk

on MacOS

  • Globally: /Library/Android/sdk
  • One user only: /Users/<username>/Library/Android/sdk

And move the tools folder to this new sdk folder. Make sure you have admin access to this folder and any sub-folders inside it, or the tools package will fail to download new packages.

Note: You can also download a pre-build package for your SO (like the one available on Ubuntu repository). But i do not recommend you do to so, because they probably will not be updated and will be harder to manage, since it was automatically installed.

Step 2— You need Java 8!

The Android SDK packages require Java 8. If you do not have it, you need to download. If you are using a newer version, you have to downgrade to Java 8 or you will eventually get some errors, because it is not compatible.

If you do not have the Java 8 SDK, here is how you can install it:

On windows

On Ubuntu run these commands:

  • # sudo apt-get update
  • # sudo apt-get install openjdk-8-jdk

Sorry for MacOS users, i don’t know how to install it on this OS.

Step 3 — Download the essential packages

Now, download the platform-tools and the emulator packages, because they contain some CLI binary files you will need later. I decided to download these packages first in order to set all the necessary environment variables at once and make the rest of the process easier.

Open a terminal window (you need to use a terminal, not the file explorer), go to your sdk folder and navigate to the /tools/bin directory.

This folder contain the SDKManager binary: this is a CLI used to list the available packages in the Google’s repository and download, update or remove them from your SDK folder.

The bellow command will list all packages installed (the first items on the list) and all packages available to download:

# ./sdkmanager — list

To download the packages, simply copy the package names and pass it as a parameter to the SDKManager CLI using the terminal:

# ./sdkmanager platform-tools emulator

If you open your sdk folder you should see these packages folders there.

Step 4 — Set your environmental variables

You need to set the below environmental variables containing the path to our SDK, so any running program can find it in your pc:

ANDROID_SDK_ROOT = Path to your SDK folder

ANDROID_HOME = The same as ANDROID_SDK_ROOT. This variable is now deprecated, but i recommend setting it because some programs still using it to locate your sdk.

And add these folders to the PATH variable, making their binary files accessible from everywhere:

/opt/android-sdk/emulator

/opt/android-sdk/platform-tools

/opt/android-sdk/tools/bin

To add the environment variables on WIndows, just follow these steps:

  1. Open the “Control Panel”;
  2. Go to “System and Security” option in the side menu;
  3. In the window “System Properties” open the tab “Advanced”;
  4. Click in the button “Environment Variables” in the bottom of the page;
  5. In the “Environment Variables” window you will see two tables: “User Variables” and ”System Variables”.
  6. If you created your sdk folder for one user only, set the variables in the “User Variables” table;
  7. But, if you create your sdk folder globally, set the variables in the “System Variables” table instead;

On Linux, you can set your environment variables in many places. So i choose the ones I found the most appropriate:

  1. If you created your sdk folder for one user only, set your environment variables in the file ~/.bashrc;
  2. If you created your sdk folder globally, set your environment variables in the /etc/environment file. But, be very careful! if you do something wrong with the path variable in this file you will broke your system (yes, i did this). This file is not a script, so you can’t use variables like $HOME, you need to write the full path to the folders. Variables declared in this file just will take effect after you logout .

Here is how i set these variables in my Ubuntu, using the file /etc/environment:

PATH=”/opt/android-sdk/emulator:/opt/android-sdk/platform-tools:/opt/android-sdk/tools/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games”

ANDROID_SDK_ROOT=”/opt/android-sdk”

ANDROID_HOME=”/opt/android-sdk”

And sorry again, no MacOS instructions for this task.

You can find more about these environmental variables in the oficial docs here.

Now your SDK is ready! If you do not need to run the emulator there’s no need to follow the next steps.

Step 5 — Download the platform specific packages you want

You need more three packages: The platform, the system-image and the build-tools. You can download these packages for any Android version you prefer. In this article, i will download the packages for the API Level 28.

Use the “sdkmanager — list” command to find these packages and download them using the command “sdkmanager <package name>”.

Here’s an example:

# sdkmanager “platforms;android-28”

# sdkmanager “system-images;android-28;default;x86”

# sdkmanager “build-tools;28.0.3”

Step 5 — Create a AVD device

Creating a AVD device is a simple task: run the AVDManager command (this is a binary file located in the tools/bin folder of your sdk) with the create avd option, a name for the new AVD and the image you want to use.

Here is a example:

# avdmanager create avd — name android28 — package “system-images;android-28;default;x86”

You will be asked if you want to alter some configurations. You can also modify these configurations later in the file config.ini, located in the avd folder (this folder usually is created in your user folder, under the android directory). The currently active configurations can be find in the file hardware-qemu.ini (this file just will be created after the emulator runs for the first time).

Step 6 — Run the Android Emulator

Now you just need to run the emulator command (remember that we added this package to the environmental variables?):

# emulator -avd <your_avd_name>

or just:

# emulator @<your_avd_name>

The emulator take some time to init for the first time. But if you done everything correctly you should see this screen:

--

--