Dans la branche Android Canary, successeur de l'Android Developer Preview et utilisée pour tester les fonctionnalités des futures versions d'Android, une nouvelle fonctionnalité a été ajoutée pour exécuter des applications graphiques compilées pour Linux. L'exécution se fait via l'application Linux Terminal, permettant de lancer une machine virtuelle avec Debian GNU/Linux dans l'environnement Android, où l'on peut exécuter des applications Linux classiques.
Pour activer l'interface graphique dans l'application Linux Terminal, un bouton « Display » a été ajouté, permettant de rediriger l'affichage via des composants de l'environnement Android principal. Une fois le bouton « Display » activé, il est possible de lancer le serveur composite Weston dans le terminal, offrant une session de fenêtres minimaliste, puis de l'utiliser pour exécuter toute application graphique, par exemple, la démonstration du démarrage de l'éditeur de texte Gedit.
Le développement de l'application Linux Terminal se fait dans le dépôt AOSP (Android Open Source Project) au sein de la plateforme Android. La fonctionnalité de la machine virtuelle cLinux évolue dans le cadre du projet Ferrochrome. Dans l'environnement invité, Debian GNU/Linux 12 est exécuté. Pour la virtualisation, le framework AVF (Android Virtualization Framework) est utilisé, basé sur un hyperviseur KVM et l'outil crosvm. L'interface graphique utilise le protocole Wayland et est basée sur le compositeur le serveur Weston. Le lancement des applications compilées pour X11 se fait à l'aide du composant DDX XWayland.
Dans l'environnement créé, il est possible de tirer parti de l'accélération matérielle graphique, permettant de lancer des applications graphiques gourmande en ressources, telles que des jeux. Pour l'accélération graphique, VirGL — un GPU virtuel Virgil3D pour QEMU/KVM — est utilisé. Par défaut, l'accélération matérielle est désactivée, et pour l'activer, il est nécessaire de créer un fichier vide nommé « virglrenderer » dans le répertoire /sdcard/linux, puis de s'assurer que le message « VirGL enabled » apparaît lors de l'ouverture du terminal.
Source : opennet.ru
