Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Install Android SDK on headless Ubuntu linux machine via command line, so that you can compile open source Android apps.
#!/bin/bash
# Thanks to https://gist.github.com/wenzhixin/43cf3ce909c24948c6e7
# Execute this script in your home directory. Lines 17 and 21 will prompt you for a y/n
# Install Oracle JDK 8
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install -y oracle-java8-installer
apt-get install -y unzip make # NDK stuff
# Get SDK tools (link from https://developer.android.com/studio/index.html#downloads)
wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar xf android-sdk*-linux.tgz
# Get NDK (https://developer.android.com/ndk/downloads/index.html)
wget https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
uznip android-ndk*.zip
# Let it update itself and install some stuff
cd android-sdk-linux/tools
./android update sdk --no-ui
# Download every build-tools version that has ever existed
# This will save you time! Thank me later for this
./android update sdk --all --no-ui --filter $(seq -s, 27)
# If you need additional packages for your app, check available packages with:
# ./android list sdk --all
# install certain packages with:
# ./android update sdk --no-ui --all --filter 1,2,3,<...>,N
# where N is the number of the package in the list (see previous command)
# Add the directory containing executables in PATH so that they can be found
echo 'export ANDROID_HOME=$HOME/android-sdk-linux' >> ~/.bashrc
echo 'export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools' >> ~/.bashrc
source ~/.bashrc
# Make sure you can execute 32 bit executables if this is 64 bit machine, otherwise skip this
dpkg --add-architecture i386
apt-get update
apt-get install -y libc6:i386 libstdc++6:i386 zlib1g:i386
# Add some swap space, useful if you've got less than 2G of RAM
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# Optionally run build system as daemon (speeds up build process)
mkdir ~/.gradle
echo 'org.gradle.daemon=true' >> ~/.gradle/gradle.properties
# See here: https://www.timroes.de/2013/09/12/speed-up-gradle/
@sebastianpfluegelmeier

This comment has been minimized.

Copy link

sebastianpfluegelmeier commented Jun 29, 2017

i corrected "uznip" to "unzip" in line 18, please "merge" my fork
https://gist.github.com/sebastianpfluegelmeier/79ed9d47f31a244aeeea96659c82c459

@anuragbhd

This comment has been minimized.

Copy link

anuragbhd commented Aug 10, 2017

I think merging gist forks is not currently supported. I'd too like the author of this gist to update line 18:
https://gist.github.com/zhy0/66d4c5eb3bcfca54be2a0018c3058931#file-ubuntu-cli-install-android-sdk-sh-L18

@LuckyRepo

This comment has been minimized.

Copy link

LuckyRepo commented Sep 12, 2017

Getting

Processing triggers for libc-bin (2.23-0ubuntu9) ...
fallocate: fallocate failed: Operation not supported
mkswap: error: swap area needs to be at least 40 KiB
swapon: /swapfile: read swap header failed

swapon command gives

(1:513)# swapon NAME TYPE SIZE USED PRIO /dev/sda2 partition 3.8G 93.8M -1

@atulmyself

This comment has been minimized.

Copy link

atulmyself commented Nov 15, 2017

good post its really helps to me please change the spelling of unzip "uznip android-ndk*.zip"

@thomas-gosnet

This comment has been minimized.

Copy link

thomas-gosnet commented Nov 16, 2017

ubuntu-cli-install-android-sdk.sh: 26: ubuntu-cli-install-android-sdk.sh: ./android: not found
ubuntu-cli-install-android-sdk.sh: 40: ubuntu-cli-install-android-sdk.sh: source: not found

after L22

swapon: /swapfile: swapon failed: Function not implemented

@NealEhardt

This comment has been minimized.

Copy link

NealEhardt commented Dec 15, 2017

Similar situation for me. After I run ./android update sdk --no-ui, the tools directory is empty! In newer versions of Android SDK, the android tool is deprecated. I wonder if that is related...

@abramovk

This comment has been minimized.

Copy link

abramovk commented Apr 26, 2018

Filter 1 not supported
Script dont work

@malikkurosaki

This comment has been minimized.

Copy link

malikkurosaki commented Jul 21, 2018

./android update sdk --no-ui --no-https

for lite tricky , error pear

@pranavavva

This comment has been minimized.

Copy link

pranavavva commented Sep 12, 2018

thank you so much!

@Vap0r1ze

This comment has been minimized.

Copy link

Vap0r1ze commented Feb 9, 2019

*Lines 22 and 26 prompt for y/n

@szepnapot

This comment has been minimized.

Copy link

szepnapot commented Apr 8, 2019

Line 22, 26 prompt can be solved with echo y | android update sdk --no-ui

https://stackoverflow.com/a/27060392/5682956

@andrestest1125

This comment has been minimized.

Copy link

andrestest1125 commented Sep 2, 2019

Package 'oracle-java8-installer' has no installation candidate

can be fixed with:

sudo apt-get install openjdk-8-jdk-headless

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.