Od uvedení první verze operačního systému Android na trh je chod jedno z nejdiskutovanějších témat. V tomto směru je nejčastěji porovnáván s konkurenčním iOS, který je ve vykreslování, chodu a plynulosti systému naprostou špičkou. Poslední high-endová Androidí zařízení se tomuto ideálu velmi slušně přibližují, jako by to však občas přece jen nebylo ono. Chybu nehledejte v hardwaru svých telefonů. Důvodem je struktura samotného OS.
I přes neustálé zvyšování výpočetního a grafického výkonu dnešních mobilních telefonů, si někteří majitelé přístrojů s operačním systémem Android stěžují na jeho rychlost a plynulost. Nelze ale rozhodně říct, že by šlo o pomalý operační systém. Při přímém srovnání s konkurenčním iOS, či nejnovějšími Windows Phone, jako by se však zdálo, že konkurence je pořád o krok napřed. Alespoň co se rychlosti a plynulosti systému týče. Chyba však většinou není ve slabém hardwaru, ani v neschopnosti vývojářů od Googlu.
K samotné problematice se vyjádřil Andrew Munn, student softwarového inženýrství a člen vývojového týmu pro Android. Vinu podle něj nese samotná stavba operačního systému, respektive způsob, jakým Android pracuje při vykreslování uživatelského rozhraní. Vykreslování rozhraní je totiž zpracováváno ve vlákně, nesoucí normální prioritu, na rozdíl od výše zmíněného iOS, který tyto úlohy zpracovává v samostatném vlákně s prioritou nejvyšší (real-time). To tedy v praxi znamená, že ostatní aplikace u Androidu mohou část výpočetního výkonu využívat na úkor vykreslování rozhraní, které má samo o sobě nižší prioritu.
Pro lepší pochopení si uveďme konkrétní případ – načítání stránek ve webovém prohlížeči Safari u iOS a v základním Androidím prohlížeči. Pokud při otevření odkazu v Safari a jeho následném načítání držíte prst na displeji, načítání se pozastaví a systém se soustředí pouze na pohyb vašeho prstu, čili vykreslování prostředí. Diametrálně odlišně při této situaci pracuje Android, pro který je nejdůležitější načítání otevírané stránky, a tak se při pohybu prstu může zdát prostředí zpomalené, či trhané. Na stejném principu pracují také starší operační systémy jako Windows Mobile 6.5, BlackBerry OS, či Symbian – ani tyto systémy nikdy neoplývaly plynulostí vykreslování či uživatelského prostředí při dotekovém ovládání.
Andrew Munn doslova tvrdí, že všechny systémy pro dotykové smartphony, které započaly vývoj před příchodem iOS, trpí právě tímto neduhem. Další příčinou může být rozdílná kompozice UI, kdy u iOS je každé zobrazení uživatelského prostředí odděleně uloženo v paměti a později ho stačí pouze z této paměti nahrát, čili se nemusí znovu zpracovávat jako u Androidu.
S příchodem dvoujádrových zařízení je tento jev již ojedinělý, i tak lze občasné zadrhnutí systému zpozorovat. Částečně tomu napomáhá i hardwarová grafická akcelerace, která je podporována od Androidu verze 3.2 a vyšší. Řeč se také stáčela kolem čipu Tegra 2, který podle Andrewa i přes skvělou mediální kampaň nVidie, není zrovna nejideálnější procesor do nejnovějších mobilních zařízení. Nejvíce prý zaostává kvůli malé propustnosti paměti a chybějící instrukční sadě NEON (NEON instrukce jsou jakýmsi ekvivalentem instrukcí SSE u platformy Intel). Tyto instrukce umožňují lepší zpracování matematických operací a jsou obsaženy například v procesorech Exynos, které vyrábí společnost Samsung.
Cílem tohoto článku tedy rozhodně není kritizovaní Androidu samotného. Celkově se jedná o dobrý systém se silnou vývojářskou základnou, který roste raketovým tempem. Vývojáři Googlu se všemi možnými způsoby snaží lagování systému odstranit, což se jim už z větší části podařilo. Stále tu však jistý rozdíl, při s rovnání s ostatními moderními systémy, je. Jednoduché řešení by samozřejmě bylo vytvořit nový UI toolkit. Problém by však nastal se staršími aplikacemi, které by se musely přepsat kvůli kompatibilitě s nově vytvořeným frameworkem. Bude zajímavé, jakou cestou vývoje se nakonec vydají.
Od uvedení první verze operačního systému Android na trh je chod jedno z nejdiskutovanějších témat. V tomto směru je nejčastěji porovnáván s konkurenčním iOS, který je ve vykreslování, chodu a plynulosti systému naprostou špičkou. Poslední high-endová Androidí zařízení se tomuto ideálu velmi slušně přibližují, jako by to však občas přece jen nebylo ono. Chybu nehledejte v hardwaru svých telefonů. Důvodem je struktura samotného OS.
I přes neustálé zvyšování výpočetního a grafického výkonu dnešních mobilních telefonů, si někteří majitelé přístrojů s operačním systémem Android stěžují na jeho rychlost a plynulost. Nelze ale rozhodně říct, že by šlo o pomalý operační systém. Při přímém srovnání s konkurenčním iOS, či nejnovějšími Windows Phone, jako by se však zdálo, že konkurence je pořád o krok napřed. Alespoň co se rychlosti a plynulosti systému týče. Chyba však většinou není ve slabém hardwaru, ani v neschopnosti vývojářů od Googlu.
K samotné problematice se vyjádřil Andrew Munn, student softwarového inženýrství a člen vývojového týmu pro Android. Vinu podle něj nese samotná stavba operačního systému, respektive způsob, jakým Android pracuje při vykreslování uživatelského rozhraní. Vykreslování rozhraní je totiž zpracováváno ve vlákně, nesoucí normální prioritu, na rozdíl od výše zmíněného iOS, který tyto úlohy zpracovává v samostatném vlákně s prioritou nejvyšší (real-time). To tedy v praxi znamená, že ostatní aplikace u Androidu mohou část výpočetního výkonu využívat na úkor vykreslování rozhraní, které má samo o sobě nižší prioritu.
Pro lepší pochopení si uveďme konkrétní případ – načítání stránek ve webovém prohlížeči Safari u iOS a v základním Androidím prohlížeči. Pokud při otevření odkazu v Safari a jeho následném načítání držíte prst na displeji, načítání se pozastaví a systém se soustředí pouze na pohyb vašeho prstu, čili vykreslování prostředí. Diametrálně odlišně při této situaci pracuje Android, pro který je nejdůležitější načítání otevírané stránky, a tak se při pohybu prstu může zdát prostředí zpomalené, či trhané. Na stejném principu pracují také starší operační systémy jako Windows Mobile 6.5, BlackBerry OS, či Symbian – ani tyto systémy nikdy neoplývaly plynulostí vykreslování či uživatelského prostředí při dotekovém ovládání.
Andrew Munn doslova tvrdí, že všechny systémy pro dotykové smartphony, které započaly vývoj před příchodem iOS, trpí právě tímto neduhem. Další příčinou může být rozdílná kompozice UI, kdy u iOS je každé zobrazení uživatelského prostředí odděleně uloženo v paměti a později ho stačí pouze z této paměti nahrát, čili se nemusí znovu zpracovávat jako u Androidu.
S příchodem dvoujádrových zařízení je tento jev již ojedinělý, i tak lze občasné zadrhnutí systému zpozorovat. Částečně tomu napomáhá i hardwarová grafická akcelerace, která je podporována od Androidu verze 3.2 a vyšší. Řeč se také stáčela kolem čipu Tegra 2, který podle Andrewa i přes skvělou mediální kampaň nVidie, není zrovna nejideálnější procesor do nejnovějších mobilních zařízení. Nejvíce prý zaostává kvůli malé propustnosti paměti a chybějící instrukční sadě NEON (NEON instrukce jsou jakýmsi ekvivalentem instrukcí SSE u platformy Intel). Tyto instrukce umožňují lepší zpracování matematických operací a jsou obsaženy například v procesorech Exynos, které vyrábí společnost Samsung.
Cílem tohoto článku tedy rozhodně není kritizovaní Androidu samotného. Celkově se jedná o dobrý systém se silnou vývojářskou základnou, který roste raketovým tempem. Vývojáři Googlu se všemi možnými způsoby snaží lagování systému odstranit, což se jim už z větší části podařilo. Stále tu však jistý rozdíl, při s rovnání s ostatními moderními systémy, je. Jednoduché řešení by samozřejmě bylo vytvořit nový UI toolkit. Problém by však nastal se staršími aplikacemi, které by se musely přepsat kvůli kompatibilitě s nově vytvořeným frameworkem. Bude zajímavé, jakou cestou vývoje se nakonec vydají.