Czemu Android jest wolniejszy od iOS‑a?

09.12.2011 15:29, aktual.: 09.12.2011 16:08

Zalogowani mogą więcej

Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika

Na wstępie pokornie uprzedzam, że co bardziej wrażliwi użytkownicy Androida powinni odpuścić sobie lekturę tej publikacji. Zawiera nie tylko fakty, ale i groźne dla ładu społecznego opinie, które — o zgrozo — powinny być czym prędzej zamiecione pod dywan, bo obrażają uczucia religijne.

Mniej radiomaryjnych i bardziej zdystansowanych czytelników zainteresować może jednak dyskusja tocząca się na łamach Google+ pomiędzy Dianne Hackborn (pracującą w Google nad Androidem) a Andrew Munnem (byłym stażystą w Google, który pewnie będzie dla wielu niewiarygodny, bo swój kolejny staż zaczął w zespole od Windows Phone - jak się domyślacie, już nie w Google).

Andrew dzieli się swoimi opiniami, dlaczego jego zdaniem interfejs Androida przycina się i jest wolniejszy, niż interfejsy iOS-a, Windows Phone 7, QNX-a czy WebOS. Zdaniem Andrew to między innymi kwestia priorytetów - w przenośni i dosłownie. Twierdzi, że w iOS interfejs renderowany jest w specjalnym wątku posiadającym najwyższy priorytet, w Androidzie tak nie jest. Różnice stają się szczególnie zauważalne, gdy w tle urządzenie wykonuje inne zadania. Łatwo to sprawdzić samemu, wczytując w Safari dużą stronę i próbując przewinąć ją, zanim się załaduje - zauważycie, że renderowanie ustanie, póki nie zdejmiecie palców z ekranu. W rzeczywistości jest to bardziej skomplikowane, co wytknęło Andrew kilku programistów specjalizujących się w aplikacjach dla iOS. Przykładowo, różne elementy renderowania interfejsu iOS pracują jednak w różnych wątkach, a płynne działanie Safari wynika po części z kultury pisania aplikacji w środowisku Apple. Niemniej, wiele z jego obserwacji i wniosków pozostaje w mocy.

Andrew nie zgadza się też z opinią Dianne, że brak akceleracji sprzętowej w Androidach wcześniejszych niż Honeycomb to nie problem. Co więcej, zauważył że nawet akceleracja sprzętowa nie rozwiązała w przypadku Androida wszystkich problemów i np. animacje podczas przeglądania zdjęć w galerii Honeycomba celowo ograniczono do 30 klatek na sekundę, bo nie udało się uzyskać stabilnych 60 klatek, co powodowało wrażenie zmian w prędkości przewijania.

Argumentów Andrew ma znacznie więcej i zahaczają też o kwestie sprzętowe, niemniej wniosek z długiego wywodu jest prosty — obecna architektura Androida powoduje, że z wielu powodów jego interfejs nie będzie tak płynny, jak rozwiązania konkurencyjne. Ocenę wydaje się częściowo potwierdzać Romain Guy z Google, który odpowiada za akcelerację sprzętową — w cytowanej przez Andrew wypowiedzi przyznaje, że obecna sytuacja jest wynikiem wyborów, które zespół od Androida poczynił lata temu i których zmiana nie jest teraz niestety prosta.

Cała dyskusja jest dość interesująca i oczywiście można sprowadzić ją zaraz do tego, że Andrew to student, więc pewnie i pijak o reputacji nadszarpniętej faktem, że przeniósł się na staż do Microsoftu. A do tego kłamie, bo przecież o Androidzie nie da się powiedzieć prawdy, która postawiłaby go w złym świetle. Czasem jednak warto pochylić się nad różnymi punktami widzenia nawet, jeśli będzie to oznaczać dyskusję nad świętościami.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl