Zum Hauptinhalt gehen

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.

info

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 :

  1. Installieren Sie die neueste Version von OpenJDK.

  2. Laden Sie die Befehlszeilentools herunter: https://developer.android.com/studio#command-line-tools-only

  3. Erstelle den Verzeichnisbaum, der das SDK beherbergen wird:

    sudo mkdir -p /opt/android-sdk/cmdline-tools
  4. Entpacken Sie den Inhalt des in Schritt 2 heruntergeladenen Archivs und benennen Sie das Verzeichnis cmdline-tools in tools um:

    unzip /chemin/vers/commandlinetools-linux-*_latest.zip && mv cmdline-tools tools
  5. Verschiebe oder kopiere dieses Verzeichnis in das zuvor erstellte Verzeichnis :

    sudo cp -r tools /opt/android-sdk/cmdline-tools
  6. 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
  7. 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-sdk
    Berücksichtigung

    Sie müssen sich neu einloggen oder newgrp android-sdk ausführen, damit die Änderungen wirksam werden.

  8. 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 :

  1. Installieren Sie die notwendigen Elemente platforms und platform-tools:

    sdkmanager "platforms;android-33" "system-images;android-33;google_apis;x86_64"
    sdkmanager --install platform-tools
  2. 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"
  3. Starten Sie schließlich AVD von der Befehlszeile aus unter Verwendung des bei der Erstellung angegebenen Namens:

    emulator -avd avd-android33-pixel
Liste der im Emulator verfügbaren AVDs
$ 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 :

  1. Führen Sie den folgenden Befehl aus:

    cat >> ~/.android/advancedFeatures.ini << EOF
    Vulkan = off
    GLDirectMem = on
    EOF
  2. Starten Sie den Emulator neu.

Wenn es weiterhin Probleme gibt

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.

Referenzen

cf. https://medium.com/michael-wallace/how-to-install-android-sdk-and-setup-avd-emulator-without-android-studio-aeb55c014264