Nella versione Android Canary, che sostituisce l'Android Developer Preview e viene utilizzata per testare le funzionalità previste per i futuri aggiornamenti di Android, è stata aggiunta la possibilità di eseguire applicazioni grafiche compilate per Linux. L'esecuzione avviene tramite l'applicazione Linux Terminal, che consente di avviare una macchina virtuale con Debian GNU/Linux nell'ambiente Android, dove è possibile eseguire normali applicazioni Linux.
Per attivare l'ambiente grafico, nell'applicazione Linux Terminal è stata aggiunta un pulsante "Display," che consente il reindirizzamento della grafica attraverso i componenti dell'ambiente principale di Android. Una volta attivato il pulsante "Display" nel terminale, si può avviare il server composito Weston, che offre una sessione di finestre minimale, e poi usarlo per eseguire qualsiasi applicazione grafica, come ad esempio il avvio del editor di testo Gedit.
Lo sviluppo dell'applicazione Linux Terminal avviene nel repository AOSP (Android Open Source Project) come parte principale della piattaforma Android. La funzionalità della macchina virtuale con Linux è in fase di sviluppo all'interno del progetto Ferrochrome. Nell'ambiente ospite viene eseguito Debian GNU/Linux 12. Per la virtualizzazione viene utilizzato il framework AVF (Android Virtualization Framework), implementato su base di un hypervisor. KVM e degli strumenti crosvm. L'ambiente grafico sfrutta il protocollo Wayland ed è basato su un compositore. server Weston. L'esecuzione delle applicazioni compilate per X11 avviene tramite il componente DDX XWayland.
Nell'ambiente creato è possibile utilizzare l'accelerazione hardware della grafica, permettendo l'esecuzione di applicazioni grafiche pesanti, come i giochi. Per l'accelerazione grafica viene utilizzato VirGL, il GPU virtuale Virgil3D per QEMU/KVM. Per impostazione predefinita, l'accelerazione hardware è disattivata e per attivarla è necessario creare un file vuoto chiamato «virglrenderer» nella directory /sdcard/linux, dopodiché è necessario verificare l'apparizione del messaggio «VirGL enabled» all'apertura del terminale.
Fonte: opennet.ru
