Hlavní navigace

Aktualizace aplikací pro Android budou výrazně menší, ale zaberou více času

9. 12. 2016

Sdílet

Zdroj: Redakce

Google na svém vývojářském blogu oznámil novinku, který bude mít citelný dopad na uživatele Androidu. Mění totiž systém rozdílových aktualizací. Uživatel si tak z Play Storu stáhne méně dat, ale zato jejich zpracování bude trvat déle. Starší a pomalejší zařízení to pravděpodobně hodně zbrzdí. Google ale tímto krokem denně ušetří až 6 petabajtů přenesených dat.

Rozdílové aktualizace fungují v Play Storu už od roku 2012. Do té doby uživatelé vždy stahovali kompletní instalátor nahraný vývojářem, přestože v něm mohl opravit jen jeden řádek zdrojového kódu. S rozdílovými updaty se ideálně stáhnou jen ta data, u kterých došlo ke změně. Naposledy Google tento proces vylepšil letos v létě, kdy implementoval algoritmus bsdiff pro tvorbu rozdílových záplat. Přinesl až 50% úsporu dat.

Aktuální novinka bude ještě účinnější. Doposud se totiž rozdílová tabulka tvořila pro celý APK instalátor, což je jen trochu jinak zabalený ZIP využívající kompresi Deflate. A Deflate je sice efektivní a rychlý, jenže má tu nevýhodu, že drobná úprava nekomprimovaného textu (zdrojového kódu) výrazně změní jeho komprimovanou verzi. Jak je vidět na obrázku, když se písmeno I přepsalo na O. Rozdílová záplata je kvůli tomu zbytečně velká.

Malá změna v nekomprimované podobě, velká v komprimované

Google proto vymyslel jinou fintu nazvanou file-by-file patch. Při ní se porovnávají změny na nekomprimovaných datech (stále s využitím metody bsdiff). Google na svém serveru připraví rozdílový balíček tak, že nejdříve rozbalí původní i nový soubor APK a porovná data. Vytvoří rozdílovou záplatu a tu zašle do zařízení uživatele. U něj se rozbalí původní APK (je tam pořád uložené) i zaslaná rozdílová tabulka, záplata se aplikuje na původní data a zabalí se do nového APK. Takový soubor pak bude stejný jako ten, který na servery Googlu nahrál vývojář. No a pak už se instaluje.

Aktualizace v Play Storu budou menší
Aktualizace v Play Storu budou menší 

Původní metoda nasazená v létě znamenala v průměru 47% úsporu dat oproti tomu, kdyby uživatelé museli stahovat celý původní instalátor APK. File-by-file patch je v průměru úspornější o 65 %. V některých případech jsou rozdílové soubory o více než 90 % menší než původní soubor APK.

Jenže rozbalování, aplikace patche, zabalování a následná instalace je výpočetně (a tedy i časově) náročnější. Na moderních zařízení prý rekomprese jede rychlostí asi 1 MB za sekundu, na starších a pomalejších to bude mnohem horší. Google zjistil, že pokud je záplata o polovinu menší než původní soubor, celková instalace zabere dvakrát tolik času. File-by-file patching proto zatím bude fungovat jen u automaticky aktualizovaných aplikací.

Zdroj: Google

Byl pro vás článek přínosný?