Émulateur /e/OS
Modifier
Installer Java
Les outils en ligne de commande du SDK Android nécessitent Java. Installez un environnement d’exécution Java avant de lancer sdkmanager ou avdmanager.
Sous Ubuntu :
sudo apt install openjdk-17-jre-headless
Sous Fedora :
sudo dnf install java-17-openjdk
Vérifiez que Java est disponible :
java -version
Installer les outils du SDK Android
Ce guide utilise les Android SDK Command-Line Tools afin que chaque commande s’exécute avec le même répertoire SDK. Android Studio n’est pas nécessaire.
Téléchargez le ZIP des outils en ligne de commande pour Linux depuis la page de téléchargement d’Android Studio,
puis installez-le sous cmdline-tools/latest dans votre répertoire du SDK Android :
export ANDROID_HOME="${HOME}/Android/Sdk"
mkdir -p "${ANDROID_HOME}/cmdline-tools"
SDK_TOOLS_TMP="$(mktemp -d)"
unzip /path/to/commandlinetools-linux-….zip -d "${SDK_TOOLS_TMP}"
mv "${SDK_TOOLS_TMP}/cmdline-tools" "${ANDROID_HOME}/cmdline-tools/latest"
Ajoutez les outils du SDK à votre PATH :
export PATH="${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/platform-tools:${PATH}"
Installez Android Emulator et les Platform-Tools dans le même répertoire SDK :
sdkmanager --sdk_root="${ANDROID_HOME}" --install "emulator" "platform-tools"
Acceptez les invites de licence du SDK Android si sdkmanager demande confirmation.
Vérifiez que les commandes nécessaires sont disponibles :
command -v sdkmanager avdmanager emulator adb
java -version
emulator -accel-check
Télécharger et vérifier l’image
Téléchargez une image d’émulateur et son fichier .sha256sum depuis le
serveur d’images /e/OS, ou
compilez une image avec IS_EMULATOR=true.
Conservez l’archive ZIP et le fichier de somme de contrôle dans un répertoire de téléchargement temporaire. L’archive sera extraite dans votre SDK Android à l’étape suivante.
Vérifiez l’archive depuis le répertoire où vous l’avez téléchargée :
sha256sum --check IMG-e-….zip.sha256sum
La somme de contrôle détecte un téléchargement endommagé. Comme la somme de contrôle et l’archive sont fournies par le même serveur, cette vérification n’établit pas l’identité de l’éditeur.
Toujours depuis le répertoire de téléchargement, examinez le fichier source.properties contenu
dans le ZIP avant de l’extraire :
unzip -p IMG-e-….zip '*/source.properties'
Cette commande affiche le fichier de métadonnées sans décompresser l’archive. Le
motif */source.properties correspond au fichier de métadonnées situé dans le répertoire
ABI contenu dans le ZIP. Utilisez les valeurs indiquées pour choisir le chemin d’installation
à l’étape suivante. Par exemple, une image Android 16 x86_64 indique le niveau
d’API 36, le tag lineage et l’ABI x86_64.
Installer l’image système
Extrayez l’image depuis votre répertoire de téléchargement vers l’arborescence des images système
du SDK Android. La destination se trouve dans ANDROID_HOME, pas dans le répertoire de
téléchargement temporaire :
cd /path/to/downloads
mkdir -p "${ANDROID_HOME}/system-images/android-36/lineage"
unzip IMG-e-….zip \
-d "${ANDROID_HOME}/system-images/android-36/lineage"
Le ZIP contient déjà le répertoire ABI. Après extraction, l’image installée doit être accessible en écriture par votre utilisateur et présenter cette disposition :
${ANDROID_HOME}/system-images/android-36/lineage/x86_64/
Ne créez pas de lien direct vers une sortie de build appartenant à root ou à un autre utilisateur.
Créez le fichier de métadonnées de paquet du SDK Android :
cat > "${ANDROID_HOME}/system-images/android-36/lineage/x86_64/package.xml" <<'EOF'
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:repository xmlns:ns2="http://schemas.android.com/repository/android/common/02" xmlns:ns12="http://schemas.android.com/sdk/android/repo/sys-img2/03">
<localPackage path="system-images;android-36;lineage;x86_64" obsolete="false">
<type-details xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns12:sysImgDetailsType">
<api-level>36</api-level>
<base-extension>true</base-extension>
<tag>
<id>lineage</id>
<display>LineageOS</display>
</tag>
<abi>x86_64</abi>
</type-details>
<revision>
<major>1</major>
</revision>
<display-name>LineageOS x86_64 System Image</display-name>
</localPackage>
</ns2:repository>
EOF
Confirmez que l’image est détectée :
sdkmanager --sdk_root="${ANDROID_HOME}" --list_installed
Le répertoire de l’image contient des fichiers tels que :
ls "${ANDROID_HOME}/system-images/android-36/lineage/x86_64"
advancedFeatures.ini build.prop data encryptionkey.img kernel-ranchu NOTICE.txt package.xml ramdisk.img source.properties system.img vendor.img VerifiedBootParams.textproto
L’émulateur crée l’image de données utilisateur accessible en écriture au démarrage de l’appareil virtuel ; elle ne fait pas partie de l’archive d’image système téléchargée.
Créer et démarrer un appareil virtuel
Avec Android Studio :
- Ouvrez More Actions > Virtual Device Manager depuis l’écran d’accueil, ou View > Tool Windows > Device Manager depuis un projet.
- Cliquez sur Create Virtual Device.
- Sélectionnez un profil matériel de téléphone et cliquez sur Next.
- Sélectionnez l’image LineageOS x86_64 pour l’API 36 et cliquez sur Next.
- Nommez l’appareil virtuel et cliquez sur Finish.
- Lancez-le depuis le Device Manager.
Vous pouvez aussi créer l’appareil virtuel depuis un terminal. La réponse echo "no"
conserve le profil matériel par défaut au lieu d’ouvrir une invite interactive :
echo "no" | avdmanager create avd \
--name eos_a16 \
--package 'system-images;android-36;lineage;x86_64'
emulator -list-avds
Démarrez l’appareil virtuel :
emulator -avd eos_a16 -no-snapshot-load
Pour un test de démarrage à froid sans interface graphique :
emulator -avd eos_a16 \
-no-window -no-audio -no-snapshot -wipe-data \
-gpu host -feature -Vulkan &
adb wait-for-device
adb shell getprop sys.boot_completed
Un démarrage terminé affiche 1.
Supprimer un appareil virtuel existant
Listez les appareils virtuels et supprimez l’appareil virtuel nommé eos_a16
emulator -list-avds
avdmanager delete avd -n eos_a16
Vérifiez si l’appareil virtuel a bien été supprimé :
emulator -list-avds
Résoudre les plantages graphiques
Si le processus de l’émulateur plante dans un RenderThread au sein de SwiftShader ou
de SwANGLE, ou si un démarrage sans interface graphique reste bloqué avant sys.boot_completed=1,
commencez par mettre à jour Android Emulator. Sur un hôte disposant d’un GPU pris en charge, réessayez avec
l’OpenGL matériel et Vulkan désactivé :
emulator -avd eos_a16 \
-gpu host -feature -Vulkan
Cette combinaison évite le rendu logiciel. Le rendu matériel dépend du GPU
de l’hôte et de son pilote ; c’est une option de dépannage, pas un réglage par défaut
portable. Les modes GPU swiftshader_indirect et guest mentionnés dans les anciens guides
sont dépréciés.