În ramura Android Canary, care a înlocuit Android Developer Preview și este utilizată pentru testarea funcționalității versiunilor viitoare ale Android, a fost adăugată capacitatea de a rula aplicații grafice compilate pentru Linux. Rularea se face prin aplicația Linux Terminal, care permite lansarea într-un mediu Android a unei mașini virtuale cu Debian GNU/Linux, în care pot fi rulate aplicații Linux obișnuite.
Pentru a lansa mediul grafic în aplicația Linux Terminal, a fost adăugată un buton "Display", care activează redirecționarea graficii prin componentele din mediul principal Android. După activarea butonului "Display", în terminal poate fi lansat serverul de compoziție Weston, oferind o sesiune minimă de feron pe care o poate utiliza pentru a rula orice aplicație grafică, de exemplu, demonstrând rularea editorului de text Gedit.
Dezvoltarea aplicației Linux Terminal se desfășoară în depozitul AOSP (Android Open Source Project) în compositia principală a platformei Android. Funcționalitatea mașinii virtuale cu Linux este dezvoltată în cadrul proiectului Ferrochrome. În mediu gazdă este lansat Debian GNU/Linux 12. Pentru virtualizare este folosit cadrul AVF (Android Virtualization Framework), implementat pe baza hipervizorului KVM și a instrumentarului crosvm. Mediul grafic folosește protocolul Wayland și se bazează pe compozitorul server Weston. Rularea aplicațiilor compilate pentru X11 se face prin componenta DDX XWayland.
În mediul creat este implementată capacitatea de a utiliza accelerația hardware pentru grafică, permițând rularea aplicațiilor grafice consumatoare de resurse, cum ar fi jocurile. Pentru accelerarea graficii este utilizat VirGL — GPU virtual Virgil3D pentru QEMU/KVM. În mod implicit, accelerația hardware este dezactivată, iar pentru a o activa, trebuie să creați un fișier gol numit "virglrenderer" în directorul /sdcard/linux, după care trebuie să urmăriți apariția mesajului "VirGL enabled" la deschiderea terminalului.
Sursa: opennet.ro
