Były stażysta Google tłumaczy, dlaczego Android jest tak powolny
Dlaczego Android jest taki powolny, w porównaniu do iOS-a, Windows Phone’a czy BlackBerry OS? Były stażysta Google’a postanowił zdradzić nieco szczegółów technicznych, by to uzasadnić.
Andrew Munn pracował w Google jako stażysta i miał okazję przyjrzeć się nieco dokładniej, niż inni, kodowi źródłowemu Androida. Jak sam zaznacza w swoim poście, wkrótce zaczyna praktyki u konkurenta, w dziale Windows Phone, i co więcej, „jestem tylko stażystą, więc możecie nie traktować mnie poważnie, nie dbam o to”. Należy o tym pamiętać czytając spostrzeżenia Munna.
Według Munna, głównym grzechem Androida jest interfejs dotykowy i sposób jego obsługi w samym rdzeniu systemu. Renderowanie interfejsu jest bowiem głównym wątkiem o normalnym priorytecie. U konkurencji rendering interfejsu odbywa się z najwyższym priorytetem real-time. Zasoby sprzętowe są więc dzielone między inne główne zadania, przez co interfejs traci na płynności, jak system musi przydzielić moc obliczeniową do rejestrowania dotyku czy załadowania danych aplikacji. Niektóre aplikacje z premedytacją mają obniżoną maksymalną ilość klatek na sekundę, by, paradoksalnie, mogły działać choć trochę płynniej.
Kolejnym problemem jest lokowanie danych dotyczących interfejsu. Na iOS-ie, każdy układ interfejsu jest osobno renderowany i przetrzymywany w pamięci, przez co GPU ma większe pole do popisu przy ich przełączaniu. Android wszystko traktuje jako jeden wątek, więc animacje interfejsu i zmiana jego układu za każdym razem wymagają ponownych przeliczeń.
Munn krytykuje też wirtualną maszynę Dalvik, która „nie jest tak dojrzała, jak desktopowa Java VM”. Munn przyznaje jednak, że Honeycomb i Ice Cream Sandwich częściowo rozwiązują problem dzięki akceleracji sprzętowej.
Munn krytykuje też ulubione rozwiązania sprzętowe producentów urządzeń z Androidem. Jako przykład podaje układ Tegra 2. który „ogranicza Androida” z uwagi na niską przepustowość pamięci i brak zestawu instrukcji NEON. Jego zdaniem, tablety z Honeycombem radziłyby sobie lepiej na układzie Samsung Hummingbird czy… Apple A4.
Munn zaznacza w swoim wpisie, że Android nigdy nie dorówna konkurencji, gdyż zmiany, jakie musiałyby zajść, są tak blisko powiązane z systemem, że właściwie trzeba by wszystko zaprojektować od nowa. –. Nawet Galaxy Nexus, czy czterordzeniowy EeePad Transformer Prime nie zapewni takiej płynności, dopóki Android będzie tak zaprojektowane. Galaxy Nexus zapewnia tą samą płynność interfejsu, co trzyletni iPhone – pisze Munn.
Skąd więc tyle błędów? Jak opowiada Munn, Android nie był projektowany z myślą o dotykowych ekranach. Miał być konkurentem dla BlackBerry OS, zorientowanym na klawiaturę i trackball. Dopiero po premierze iPhone’a w 200. roku, Google pospiesznie przebudował część systemu. Było jednak zbyt mało czasu, by zmienić jego rdzeń. Android więc, jak twierdzi Munn, należy do tej samej generacji systemów dotykowych, co Windows Mobile 6.5, BlackBerry OS czy Symbian, które mają identyczne problemy, co system Google’a. iOS, Windows Phone i nowe systemy BlackBerry właśnie dlatego zostały napisane zupełnie od zera.
Wpis Munna weryfikuje Romain Guy, który współtworzy Androida. Dodaje, że przepisanie go na nowo już nie jest możliwe z uwagi na kompatybilność z istniejącymi aplikacjami.
Polecamy w wydaniu internetowym chip.pl: "Top 5 gier 2011 roku - AMD A8 3850 średnio dwukrotnie szybszy od Intel Core i3"