Zum Hauptinhalt gehen
Version: 4.9

Installation einer Android VM

Diese Seite führt Sie durch die Installation einer virtuellen Android-Umgebung unter Linux.

Wenn Sie Android Studio (rich IDE) nicht benötigen, können Sie nur das Nötigste installieren, um eine virtuelle Android-Maschine einzurichten.

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 einrichten und den sdkmanager installieren.

Nachfolgend finden Sie die Aktionen, die Sie je nach Ihrer Distribution durchführen müssen (allgemeine Aktionen, entsprechende Befehle für bestimmte Distributionen).

Generisches Linux

  1. Installiere die neueste Version von openJDK' (vgl. cf. https://doc.ubuntu-fr.org/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 Archivs und benennen Sie das übergeordnete Verzeichnis cmdline-tools in tools um

  5. Verschiebe oder kopiere dieses Verzeichnis in das zuvor erstellte Verzeichnis :

    sudo cp -r tools /opt/android-sdk/cmdline-tools
  6. Richten Sie die Umgebungsvariablen ein, indem Sie die folgenden 2 Zeilen zur Datei .profile des Benutzers hinzufügen:

    export ANDROID_SDK_ROOT="/opt/android-sdk"
    PATH="$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/emulator"
  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 :android-sdk /opt/android-sdk -R
    sudo chmod u+w /opt/android-sdk
    info

    Sie müssen sich erneut anmelden oder newgrp android-sdk ausführen

  8. Installieren Sie tools:

    Installieren Sie <code>tools</code>: <code>sdkmanager --sdk_root=/opt/android-sdk "tools"</code>

Jetzt hast du alles, was du brauchst, um die Kommandozeilen-Tools zu benutzen, um deine Umgebung zu verwalten.

Android Virtual Device

Verwalten von SDKs und Werkzeugen

Einige nützliche Befehle von sdkmanager:

$ sdkmanager --list
$ sdkmanager --update

Bevor du fortfährst, stelle sicher, dass du alle Voraussetzungen erfüllt hast:

  • den PATH für den Zugriff auf die Befehle überprüfen
$ echo $PATH
…:/opt/android-sdk/emulator:/opt/android-sdk/platform-tools:/opt/android-sdk/tools/bin:/opt/android-sdk/emulator
  • ANDROID_SDK_ROOT überprüfen
$ echo $ANDROID_SDK_ROOT
/opt/android-sdk
  • die Rechte im Installationsordner überprüfen
$ ll -g $ANDROID_SDK_ROOT
Permissions Size User Group Date Modified Name
drwxrwxr-x@ - user android-sdk 14 Sep 13:13 emulator
drwxrwxr-x@ - user android-sdk 14 Sep 13:19 licenses
drwxrwxr-x@ - user android-sdk 14 Sep 13:11 patcher
drwxrwxr-x@ - user android-sdk 14 Sep 13:13 platform-tools
drwxrwxr-x@ - user android-sdk 14 Sep 13:19 system-images
drwxrwxr-x@ - user android-sdk 14 Sep 13:15 tools
  • überprüfen, was installiert ist
$ sdkmanager --list
Installierte Pakete:=====================] 100 % Aktualisierungen werden berechnet...
Pfad | Version | Beschreibung | Speicherort
------- | ------- | ------- | -------
emulator | 30.0.26 | Android-Emulator | emulator/
patcher;v4 | 1 | SDK-Patch-Anwender v4 | patcher/v4/
platform-tools | 30.0.4 | Android SDK Platform-Tools | platform-tools/

Virtuelle Maschinen verwalten

Bevor Sie ein AVD (Android Virtual Device) erstellen, benötigen Sie eine installierte Systemsystemabbildung in Ihrer Umgebung.

Sollte dies nicht der Fall sein, installieren Sie die erforderlichen Komponenten platforms und platform-tools:

sdkmanager "platforms;android-33" "system-images;android-33;google_apis;x86_64"
sdkmanager --install platform-tools

Erstelle dann 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

Für eine 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

Du kannst Befehle an den Emulator senden, um bestimmte Aktivitäten zu simulieren: eine SMS empfangen, die GPS-Position oder die Leistung des Handys ändern etc.

Die Liste der möglichen Aktionen finden Sie hier: https://developer.android.com/studio/run/emulator-console

telnet localhost 5554

Verbindung zu ::1 wird hergestellt...
Mit localhost verbunden.
Das Escape-Zeichen lautet „^]“.
Android-Konsole: Authentifizierung erforderlich
Android-Konsole: Geben Sie „auth <auth_token> “ ein, um sich zu authentifizieren
Android-Konsole: Sie finden Ihr „ <auth_token> “ unter
„/home/user/.emulator_console_auth_token“
OK
auth FEHdxl/bQ4B24S2l
Android-Konsole: Geben Sie „help“ ein, um eine Liste der Befehle anzuzeigen
OK
sms send 4085555555 hi there
OK

Öffnen einer Root-Shell

Erstellen Sie eine root shell Konsole im aktuellen Terminal. Es unterscheidet sich vom Befehl shell adb auf folgende Weise:

  • Sie erstellt eine Root-Shell, mit der Sie viele Teile des Systems ändern 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.

cf. cf. https://developer.android.com/studio/run/emulator-commandline#advanced

Verbindung über ADB

adb devices
adb shell
emu64x:/ $ su
emu64x:/ # (you win!)

Screenshots

Bekannte Probleme

Fehler sdkmanager "Could not create settings".

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.SdkManagerCliSettings.createSettings.java:134) at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
info

Lösung

Du musst der Java-Anwendung helfen, den root sdk zu finden:

sdkmanager --sdk_root=/opt/android-sdk --list

Fehler "Warning: Failed to read or create install properties file".

Kann nicht in das Verzeichnis /opt/android-sdk geschrieben werden.

info

Lösung

$ sudo chmod g+w /opt/android-sdk

Emulator-Fehler "PANIC: Broken AVD system path. Überprüfen Sie Ihren ANDROID_SDK_ROOT-Wert [/opt/android-sdk]!"

cf. cf. https://stackoverflow.com/questions/39645178/panic-broken-avd-system-path-check-your-android-sdk-root-value

Emulator-Fehler

Im Installationsverzeichnis /opt/android-sdk befinden sich zwei Binärdateien, /opt/android-sdk/tools/emulator und /opt/android-sdk/emulator/emulator. Es ist ein wenig obskur.

Mit der Version in /opt/android-sdk/emulator wurden weniger Probleme festgestellt (siehe sdkmanager --list). Abhängig von der Variable $PATH wird jedoch das andere Binary verwendet (siehe which emulator)

Referenzen

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