-
-
Save paulonteri/cab4a7a98cdfa9f7f78aed62264cd9f7 to your computer and use it in GitHub Desktop.
Run a Headless Android Device on Ubuntu server (no GUI)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -i | |
#using shebang with -i to enable interactive mode (auto load .bashrc) | |
set -e #stop immediately if any error happens | |
# Install Open SDK | |
apt update | |
apt install openjdk-8-jdk -y | |
update-java-alternatives --set java-1.8.0-openjdk-amd64 | |
java -version | |
# Install SDK Manager | |
# you can find this file at https://developer.android.com/studio/index.html#downloads - section command line only | |
cd ~ && wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip | |
ANDROID_HOME=/opt/androidsdk | |
mkdir -p $ANDROID_HOME | |
apt install unzip -y && unzip sdk-tools-linux-4333796.zip -d $ANDROID_HOME | |
echo "export ANDROID_HOME=$ANDROID_HOME" >> ~/.bashrc | |
echo 'export SDK=$ANDROID_HOME' >> ~/.bashrc | |
echo 'export PATH=$SDK/emulator:$SDK/tools:$SDK/tools/bin:$SDK/platform-tools:$PATH' >> ~/.bashrc | |
source ~/.bashrc | |
# Install Android Image version 28 | |
yes | sdkmanager "platform-tools" "system-images;android-25;google_apis;armeabi-v7a" "emulator" | |
yes | sdkmanager "system-images;android-25;google_apis;armeabi-v7a" | |
emulator -version | |
echo "INSTALL ANDROID SDK DONE!" | |
echo "run 01.emulator-up.sh [new device name] to start emulator" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -i | |
#using shebang with -i to enable interactive mode (auto load .bashrc) | |
#this script was inspired from https://docs.travis-ci.com/user/languages/android/ | |
set -e #stop immediately if any error happens | |
avd_name=$1 | |
if [[ -z "$avd_name" ]]; then | |
avd_name="avd28" | |
fi | |
# check if emulator work well | |
emulator -version | |
# stop emulators | |
adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill; done | |
# download script thalt helps in telling if emulator has started | |
# https://raw.githubusercontent.com/travis-ci/travis-cookbooks/master/community-cookbooks/android-sdk/files/default/android-wait-for-emulator | |
wget --quiet --output-document=android-wait-for-emulator https://raw.githubusercontent.com/travis-ci/travis-cookbooks/0f497eb71291b52a703143c5cd63a217c8766dc9/community-cookbooks/android-sdk/files/default/android-wait-for-emulator | |
chmod +x android-wait-for-emulator | |
# create virtual device, default using (API Level 25) | |
echo no | avdmanager create avd -f -n avd28 -k "system-images;android-25;google_apis;armeabi-v7a" | |
# start the emulator | |
emulator -avd avd28 -no-audio -no-window -no-boot-anim & ./android-wait-for-emulator | |
# show connected virtual device(s) | |
adb devices |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment