Last active
May 29, 2024 22:18
-
-
Save nhtua/2d294f276dc1e110a7ac14d69c37904f 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" "platforms;android-28" "emulator" | |
yes | sdkmanager "system-images;android-28;google_apis;x86_64" | |
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 | |
# create virtual device, default using Android 9 Pie image (API Level 28) | |
echo no | avdmanager create avd -n avd28 -k "system-images;android-28;google_apis;x86_64" | |
# start the emulator | |
emulator -avd avd28 -no-audio -no-window & | |
# show connected virtual device | |
adb devices |
To take advantage of the use of the argument variable "avd_name", you have to modify line 17 and line 20
echo no | avdmanager create avd -n avd28 -k "system-images;android-28;google_apis;x86_64"
to:
echo no | avdmanager create avd -n $avd_name -k "system-images;android-28;google_apis;x86_64"
Finally:
emulator -avd avd28 -no-audio -no-window &
to:
emulator -avd $avd_name -no-audio -no-window &
I also thought https://gist.github.com/nhtua/2d294f276dc1e110a7ac14d69c37904f?permalink_comment_id=4278536#gistcomment-4278536 was the case. Can anyone confirm?
Is there a way to install an apk
in this script?
Do anyone else continuously get: E0215 06:40:33.890416 14040 FrameBuffer.cpp:3736] Failed to find ColorBuffer:0
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I cannot install anything, it gives me the
Error: Could not access the Package Manager. Is the system running?
EDIT:
Its because the emulator hasnt booted completely, for anyone reading you can check that with:
adb shell getprop init.svc.bootanim