Dalvik odejdzie w niepamięć? Google stawia na ART

4 minuty czytania
Komentarze
art_selection

Od czasu swojego początku, Android bazował na wirtualnej maszynie Dalvik, która pełni rolę platformy na której opiera się działanie wszystkich aplikacji. Dzięki niej aplikacje są kompilowane w czasie rzeczywistym co optymalizuje ich pracę pod kątem użycia procesora oraz zużycia baterii. Wygląda na to, że szumne zapowiedzi o nadchodzącym następcy zaczynają przechodzić w czyny. Google wprowadziło ART w wydaniu 4.4 KitKat, jednak dopiero w najnowszym 4.4.2 dostępny jest on dla każdego użytkownika. Czym jest ART i jakie korzyści płyną z jego implementacji? Zapraszamy do rozwinięcia w dalszej części newsa.

Główną zaletą nowej VM jest to, że aplikacje są prekompilowane w czasie uruchomienia, a nie kompilowane w czasie rzeczywistym. No tak, ale co to tak na prawdę znaczy dla zwykłego użytkownika Androida? Zacznijmy od początku. Pierwsze kroki Dalvik stawiał na urządzeniach, które na owe czasy były średnim segmentem rynku telefonów.  System ten, bazuje na rdzeniu Linuxa i zamysłem jego twórców jest działanie na wszystkich telefonach. Jednak między pierwszymi telefonami bazującymi na Androidzie, posiadającymi 1-rdzeniowy procesor ARM i 256 lub 512MB RAMu oraz parędziesiąt lub paręset MB pamięci wewnętrznej,  a dzisiejszymi 4ro i 8mio rdzeniowymi procesorami z 2GB RAMu na pokładzie z GB pamięci Flash jest kosmiczna różnica w wydajności. Dlatego też, potencjał programistyczny jest blokowany przez wsteczną kompatybilność.

Zasada działania Dalvika opiera się na „kompiluj tylko to, co w tym momencie używasz”. Dzięki temu, użycie procesora, pamięci RAM i co za tym idzie, baterii zostało zredukowane do minimum. Aplikacje były kompilowane „w locie”, czyli gdy je uruchamialiśmy, poszczególnie fragmenty kodu były tłumaczone na język maszynowy tylko gdy było to wymagane do działania aplikacji. Dzisiejsza „średnia półka” to telefony 1-rdzeniowe (mocny Cortex A9 bądź Krait) lub dwurdzeniowe jednostki A5, A7 i lepsze, przynajmniej 512MB RAMu oraz 4GB pamięci wewnętrznej. W takich warunkach Dalvik również się sprawdza, jednak nie wykorzystuje już pełnego potencjału dostępnego sprzętu. Tutaj do gry wchodzi ART, który bazuje na „prekompilowanym” kodzie, co oznacza, że aplikacje są w całości kompilowane podczas instalacji i bazują na danych zapisanych w pamięci wewnętrznej. Zaletą takiego rozwiązania jest lepsza wydajność urządzenia oraz mniejsze zużycie pamięci (mniej instrukcji do „przerobienia” = mniejsze zużycie procesora = mniejsze zużycie baterii). Dużą różnicę w pracy na baterii oraz wydajności powinni więc zauważyć użytkownicy topowych modeli telefonów z 4-ro i 8-mio rdzeniowymi procesorami, powyżej 1GB RAMu oraz szybką i pojemną pamięcią flash. Proste, prawda? Poniżej wypunktowane zalety i wady takiego rozwiązania.

Zalety ART:

  • prekompilowany kod zmniejsza obciążenie procesora podczas wykonywania aplikacji,
  • wzrost wydajności szacowany na do 30% względem leciwego Dalvika,
  • mniejsze zużycie baterii, w trybie standby procesor nie musi kompilować kodu, bazuje na tym, co zostało prekompilowane podczas instalacji aplikacje

Wady ART:

  • aplikacje zajmują więcej miejsca w pamięci flash telefonu (co w przypadku telefonów z niskiego i średniego segmentu znacząco wpływa ilość zainstalowanych aplikacji), wzrost objętości aplikacji do 20%. Aplikacje instalują się odrobinę dłużej.
  • kompatybilność – ART jest świeżym projektem i nie każdy developer przygotował swój projekt do jego obsługi. 99% działa bez problemu, jednak zdarzają się i takie, które odmawiają posłuszeństwa. Listę sprawdzonych znajdziecie pod tym adresem.

Google w przyszłości planuje odprawić na emeryturę wysłużonego Dalvika, a w jego miejsce wprowadzić na stałe ARTa. Jednak zanim to nastąpi, nic nie stoi na przeszkodzie (no, może ta nieszczęsna kompatybilność wsteczna), aby obie te maszyny znalazły się w jednym urządzeniu. Aplikacje Dalvika operują na plikach DEX, podczas gdy ART korzysta z plików OAT (przy pomocy konwertera dex2oat), więc aplikacje zainstalowane przy jednym silniku nie będą działać na drugim, dopóki nie nastąpi konwersja.

Chcesz sprawdzić działanie nowej „zabawki” Google’a?
ART nie jest jeszcze domyślną maszyną w Androidzie, stąd też musisz ją odblokować ręcznie.
1. Przejdź do ustawień telefonu i znajdź pozycję „Informacje o telefonie”,
2. Tapnij parokrotnie na ‘Numer kompilacji’ dopóki nie otrzymasz powiadomienia, że jesteś deweloperem,
3. Wróć do ustawień, pojawi się pozycja „Opcje programistyczne” ,
4. W „Developer options” wejdź w „Wybierz czas wykonywania” i wybierz „Użyj ART”.

Twój telefon powinien się zrestartować. Uruchamianie potrwa od 10 do nawet 25 min (w zależności od ilości zainstalowanych aplikacji), Android musi przekonwertować je na wersje zgodne z ART. Ustawienia i dane nie ulegną zmianie ani uszkodzeniu, bez obawy. Powrót do Dalvika wykonujemy w analogiczny sposób.

ART_runtime

Spróbujecie? Pochwalcie się waszymi odczuciami. Teoria nie zawsze idzie w parze z praktyką więc jesteśmy ciekawi waszej opinii.

Źródło: XDA, liliputing.com, forbes.com, phandroid.com

Motyw