In de Android Canary-tak, die de Android Developer Preview vervangt en wordt gebruikt om functionaliteit voor toekomstige Android-releases te testen, is de mogelijkheid toegevoegd om grafische applicaties die voor Linux zijn gebouwd, uit te voeren. Dit gebeurt via de Linux Terminal-app, die een virtuele machine met Debian GNU/Linux kan opstarten in de Android-omgeving, waar gebruikelijke Linux-applicaties kunnen worden uitgevoerd.
Voor het opstarten van een grafische omgeving is er een 'Display'-knop toegevoegd aan de Linux Terminal-app, die grafische omleiding inschakelt via componenten in de hoofd Android-omgeving. Nadat de 'Display'-knop in de terminal is geactiveerd, kan de compositor-server Weston worden opgestart, die een minimalistische venstersessie biedt, waarna deze kan worden gebruikt om grafische applicaties te draaien, zoals het demonstreren van de teksteditor Gedit.
De ontwikkeling van de Linux Terminal-app vindt plaats in de AOSP (Android Open Source Project) repository binnen de Android-platformsamenstelling. De functionaliteit van de virtuele machine met Linux wordt ontwikkeld als onderdeel van het Ferrochrome-project. In de gastomgeving draait Debian GNU/Linux 12. Voor virtualisatie wordt het AVF (Android Virtualization Framework) gebruikt, gebaseerd op een hypervisor. KVM en de crosvm-toolkit. De grafische omgeving gebruikt het Wayland-protocol en is gebaseerd op compositing. de server Weston. Applicaties die zijn opgebouwd voor X11 worden uitgevoerd met behulp van de DDX-component XWayland.
In de gecreĆ«erde omgeving is de mogelijkheid gerealiseerd om hardwareversnelling voor grafische weergave te benutten, wat het mogelijk maakt om zware grafische applicaties, zoals games, uit te voeren. Voor grafische versnelling wordt VirGL gebruikt ā de virtuele GPU Virgil3D voor QEMU/KVM. Standaard is hardwareversnelling uitgeschakeld en om deze te activeren moet er in de map /sdcard/linux een leeg bestand met de naam 'virglrenderer' worden aangemaakt, waarna men moet toezien op het verschijnen van het bericht 'VirGL enabled' bij het openen van de terminal.
Bron: opennet.ru
