Deweloperzy i fascynaci Androida, którzy zainstalowali już na swoich telefonach i tabletach ROM-y z wersją 4.4 systemu, mogą w ustawieniach (Settings | Developer Options) wybrać sobie nowe środowisko uruchomieniowe dla aplikacji. Zamiast klasycznego Dalvika (libdvm.so) mogą włączyć ART (Android RunTime, libart.so). Potem wystarczy odczekać kilkanaście minut, podczas których system optymalizuje aplikacje pod kątem nowej maszyny – i w ten sposób wkraczamy we wciąż eksperymentalną przyszłość Androida.

Co takiego przełomowego przynosi ART? Przede wszystkim zmienia całkowicie proces uruchamiania aplikacji. W Dalviku od wersji 2.2 Androida wykorzystywany jest kompilator Just-In-Time do optymalizacji kodu bajtowego (co i tak przyniosło wówczas nawet 4,5-krotne przyspieszenie w teście Linpack for Android), ale i tak aplikacja za każdym uruchomieniem musi przejść przez interpreter, co oczywiście wiąże się ze sporym narzutem. Zaletą takiego podejścia jest łatwość uruchamiania na różnych architekturach sprzętowych, wadą oczywiście marnotrawstwo mocy obliczeniowej. Tak więc ART pozwala na prekompilację kodu bajtowego Javy na kod maszynowy, za pomocą tzw. kompilatora ahead-of-time (AOT). Jako że optymalizacje wprowadzane przez taki kompilator wykonywane są tylko raz, mogą one być znacznie bardziej zaawansowane, niż byłoby to uzasadnione dla kompilatora JIT (choć oczywiście AOT nie może stosować wielu typów dynamicznej optymalizacji).
Efekt jest jednak bardzo odczuwalny, szczególnie przez użytkowników urządzeń o niewielkich zasobach pamięci i mocy obliczeniowej. Prekompilowane aplikacje i biblioteki zajmują mniej pamięci i szybciej się uruchamiają, są bowiem aplikacjami w pełni natywnymi, nie wymagają każdorazowego uruchamiania maszyny wirtualnej. Pierwsze benchmarki pokazują, że dla większości aplikacji czas uruchamiania może zostać w ten sposób skrócony nawet o połowę. To zaś oznacza, że system dłużej będzie przebywał w stanie bezczynności i wykorzystywał mniej rdzeni procesora, oszczędzając w ten sposób energię.
Przejście na ART-a będzie miało też pewne negatywne skutki – rozmiar zainstalowanych aplikacji będzie trochę większy (kod bajtowy jest oszczędniejszy od kodu maszynowego), aplikacje będą też dłużej się instalowały, jako że częścią procesu instalacji będzie ich prekompilacja na konkretną architekturę sprzętową. Są to jednak koszty warte poniesienia, pozwalające Androidowi uzyskać wydajność porównywalną z iOS-em Apple'a.
Nie wiadomo, kiedy ART stanie się domyślnym środowiskiem uruchomieniowym Androida. Google udostępniło tę technologię jedynie eksperymentalnie, tak by zapoznać się z nią mogli producenci sprzętu i programiści. Jej stosowanie na co dzień na razie nie ma sensu, ryzykujemy niestabilnością systemu i niekompatybilnością z wieloma aplikacjami. Widać to szczególnie na ROM-ach AOSP, gdzie przełączenie z Dalvika na ART powoduje awarie aplikacji Google.
dobreprogramy.pl