Installation einer Android VM
Diese Seite führt Sie durch die Installation einer virtuellen Android-Umgebung unter Linux.
Wenn Sie Android Studio (die vollständige Entwicklungsumgebung) nicht benötigen, können Sie mit diesem Verfahren nur das Nötigste installieren, um eine virtuelle Android-Maschine zu starten.
Alle Informationen zu den Befehlszeilentools sind online verfügbar: https://developer.android.com/studio/command-line.
Voraussetzungen
Bevor Sie die virtuelle Maschine selbst installieren, müssen Sie eine Reihe von Umgebungsvariablen setzen und den sdkmanager installieren.
Hierzu :
-
Installieren Sie die neueste Version von OpenJDK.
-
Laden Sie die Befehlszeilentools herunter: https://developer.android.com/studio#command-line-tools-only
-
Erstelle den Verzeichnisbaum, der das SDK beherbergen wird:
sudo mkdir -p /opt/android-sdk/cmdline-tools
-
Entpacken Sie den Inhalt des in Schritt 2 heruntergeladenen Archivs und benennen Sie das Verzeichnis
cmdline-tools
intools
um:unzip /chemin/vers/commandlinetools-linux-*_latest.zip && mv cmdline-tools tools
-
Verschiebe oder kopiere dieses Verzeichnis in das zuvor erstellte Verzeichnis :
sudo cp -r tools /opt/android-sdk/cmdline-tools
-
Setzen Sie die Umgebungsvariablen in die Profildatei der Shell des Benutzers:
echo 'export ANDROID_SDK_ROOT="/opt/android-sdk"' >> ~/.profile
echo 'PATH="$PATH:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/emulator"' >> ~/.profile
source ~/.profile -
Erstellen Sie die Gruppe
android-sdk
, fügen Sie den aktuellen Benutzer hinzu und geben Sie Berechtigungen für den Ordner:sudo groupadd android-sdk
sudo gpasswd -a $USER android-sdk
sudo setfacl -R -m g:android-sdk:rwx /opt/android-sdk
sudo setfacl -d -m g:android-sdk:rwX /opt/android-sdk
sudo chown -R :android-sdk /opt/android-sdk
sudo chmod u+w /opt/android-sdkBerücksichtigung
Sie müssen sich neu einloggen oder
newgrp android-sdk
ausführen, damit die Änderungen wirksam werden. -
Installieren Sie die
tools
des SDK :/opt/android-sdk/cmdline-tools/tools/bin/sdkmanager --sdk_root=/opt/android-sdk "tools"
Sie haben nun alles, was Sie brauchen, um die Kommandozeilen-Tools zur Verwaltung Ihrer Umgebung zu nutzen.
Android Virtual Device
Verwalten von SDKs und Werkzeugen
Voraussetzungen
-
Überprüfen Sie das
PATH
für den Zugriff auf die Befehle:$ echo $PATH | grep -i --color android
/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/opt/android-sdk/cmdline-tools/tools/bin:/opt/android-sdk/emulator -
Überprüfen Sie
ANDROID_SDK_ROOT
:$ echo $ANDROID_SDK_ROOT
/opt/android-sdk -
Überprüfen Sie die Rechte im Installationsordner:
$ ls -lg $ANDROID_SDK_ROOT
drwxrwxr-x+ 3 android-sdk 4096 Jul 29 15:30 cmdline-tools
drwxrwxr-x+ 8 android-sdk 4096 Jul 29 15:48 emulator
drwxrwxr-x+ 2 android-sdk 4096 Jul 29 15:47 licenses
drwxrwxr-x+ 3 android-sdk 4096 Jul 29 15:47 platform-tools
drwxrwxr-x+ 6 android-sdk 4096 Jul 29 15:48 tools
Nützliche Befehle
Einige nützliche Befehle von sdkmanager:
-
überprüfen, was installiert ist:
$ sdkmanager --list
Installed packages:=====================] 100% Computing updates...
Path | Version | Description | Location
------- | ------- | ------- | -------
emulator | 30.0.26 | Android Emulator | emulator/
patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/
platform-tools | 30.0.4 | Android SDK Platform-Tools | platform-tools/ -
die SDKs zu aktualisieren:
$ sdkmanager --update
Virtuelle Maschinen verwalten
Bevor Sie ein AVD (Android Virtual Device oder virtuelles Gerät) erstellen, müssen Sie ein Systemabbild installieren, das in der Umgebung installiert ist.
Hierzu :
-
Installieren Sie die notwendigen Elemente
platforms
undplatform-tools
:sdkmanager "platforms;android-33" "system-images;android-33;google_apis;x86_64"
sdkmanager --install platform-tools -
Erstellen Sie die AVD nach dem installierten Image:
avdmanager create avd -n avd-android33-pixel -k "system-images;android-33;google_apis;x86_64" --device "pixel"
-
Starten Sie schließlich AVD von der Befehlszeile aus unter Verwendung des bei der Erstellung angegebenen Namens:
emulator -avd avd-android33-pixel
$ emulator -list-avds
avd-android30-pixel
avd-android33-pixel
Tipps
Physische Tastatur
Um die physische Tastatur des Computers im Emulator zu verwenden, ändern Sie den Wert der Variablen hw.keyboard
in der Datei ~/.android/avd/<your avd>/config.ini
:
hw.keyboard = yes
Umgang mit dem Emulator
Sie können Befehle an den Emulator senden, um bestimmte Aktivitäten zu simulieren: eine SMS empfangen, die GPS-Position, die GSM-Stärke usw. ändern.
Eine Liste der möglichen Aktionen finden Sie in der Produktdokumentation: https://developer.android.com/studio/run/emulator-console
Beispiel für das Senden einer SMS :
$ telnet localhost 5554
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/home/user/.emulator_console_auth_token'
OK
auth FEHdxl/bQ4B24S2l
Android Console: type 'help' for a list of commands
OK
sms send 4085555555 hi there
OK
Öffnen einer Root-Shell
Die root shell Konsole unterscheidet sich von der shell adb Konsole auf folgende Weise:
- Sie erstellt eine Root-Shell, mit der viele Teile des Systems geändert werden können.
- Sie funktioniert auch dann, wenn der adb-Daemon im emulierten System defekt ist.
- Durch Drücken von Strg+C (⌘C) wird der Emulator anstelle der Shell gestoppt.
Weitere Informationen finden Sie unter https://developer.android.com/studio/run/emulator-commandline#advanced.
Verbindung über ADB
adb devices
adb shell
emu64x:/ $ su
emu64x:/ # (you win!)
Bildschirmaufnahmen
Bekannte Probleme
Fehler sdkmanager "Could not create settings".
Symptome
Unabhängig vom Befehl des sdkmanager
erhält man diese Antwort:
$ sdkmanager --list
Warning: Could not create settings
java.lang.IllegalArgumentException
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Lösung
Sie müssen der Java-Anwendung helfen, den root sdk zu finden.
Hierzu :
sdkmanager --sdk_root=/opt/android-sdk --list
Fehler "Warning: Failed to read or create install properties file".
Symptome
Kann nicht in das Verzeichnis /opt/android-sdk
geschrieben werden.
Lösung
Sie müssen der Gruppe des Nutzers Zugriffsrechte geben.
Hierzu :
$ sudo chmod g+w /opt/android-sdk
$ newgrp android-sdk
Fehler: Einige Android-Anwendungen zeigen einen schwarzen oder beschädigten Bildschirm an.
Symptome
Auf einem relativ neuen Rechner kann es sein, dass Vulkan verwendet wird und noch nicht sehr stabil ist. Einige Fenster, wie z.B. Chrome, können mit solchen Grafikfehlern oder schwarzen Bildschirmen erscheinen:
Lösung
Vulkan muss im Emulator deaktiviert werden.
Hierzu :
-
Führen Sie den folgenden Befehl aus:
cat >> ~/.android/advancedFeatures.ini << EOF
Vulkan = off
GLDirectMem = on
EOF -
Starten Sie den Emulator neu.
Wenn weiterhin visuelle Fehler auftreten, ist es möglich, dass das System den experimentellen Grafiktreiber xe
für die Grafikkarte verwendet. Auch dieser ist derzeit nicht stabil, so dass es notwendig sein kann, ihn mit dem folgenden Befehl zu deaktivieren:
/sbin/lsmod | grep -wq ^xe && { echo "blacklist xe" | sudo tee /etc/modprobe.d/blacklist-experimental-xe-gpu.conf >/dev/null && echo "You need to reboot"; }
Starten Sie dann die Maschine neu.
Emulator-Fehler
In der Installation sind zwei Binärdateien verfügbar: /opt/android-sdk/tools/emulator
und /opt/android-sdk/emulator/emulator
.
Mit der Version in /opt/android-sdk/emulator
wurden weniger Probleme festgestellt (siehe sdkmanager --list
). Je nach der Variablen $PATH
wird jedoch die andere Binärvariante verwendet (siehe auch which emulator
).
Falls nötig, verwenden Sie explizit /opt/android-sdk/emulator/emulator
, indem Sie den PATH
ändern.