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.
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
-
Installiere die neueste Version von openJDK' (vgl. cf. https://doc.ubuntu-fr.org/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 Archivs und benennen Sie das übergeordnete Verzeichnis
cmdline-toolsintoolsum -
Verschiebe oder kopiere dieses Verzeichnis in das zuvor erstellte Verzeichnis :
sudo cp -r tools /opt/android-sdk/cmdline-tools -
Richten Sie die Umgebungsvariablen ein, indem Sie die folgenden 2 Zeilen zur Datei
.profiledes 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" -
Erstellen Sie die Gruppe
android-sdk, fügen Sie den aktuellen Benutzer hinzu und geben Sie Berechtigungen für den Ordner:sudo groupadd android-sdksudo gpasswd -a $USER android-sdksudo setfacl -R -m g:android-sdk:rwx /opt/android-sdksudo setfacl -d -m g:android-sdk:rwX /opt/android-sdksudo chown :android-sdk /opt/android-sdk -Rsudo chmod u+w /opt/android-sdkinfoSie müssen sich erneut anmelden oder
newgrp android-sdkausführen -
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)
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.
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]!"
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)