Aktualizacje aplikacji z Google Play znacznie mniejsze, ale za to bardziej obciążające sprzęt

Aktualizacje aplikacji z Google Play znacznie mniejsze, ale za to bardziej obciążające sprzęt07.12.2016 14:23
Aktualizacje aplikacji z Google Play znacznie mniejsze, ale za to bardziej obciążające sprzęt

Użytkownicy Androida nie raz pewnie widzieli, jak ich smartfonypo dłuższej nieobecności w zasięgu domowego Wi-Fi, naglezaczynają się dławić po powrocie, próbując pobrać przez sklepPlay aktualizacje do większości zainstalowanych aplikacji. Generujeto spory ruch sieciowy, praktycznie uniemożliwiając korzystanie wtym czasie z Internetu. Wygląda jednak na to, że Google znalazłoefektywniejszy sposób na aktualizowanie oprogramowania, pozwalającyzmniejszyć ruch sieciowy nawet o 65%.

Aktualizacje oprogramowania na Androida oczywiście nie polegająna pobieraniu nowych wersji w całości – sklep Play od 2012 rokuwykorzystuje mechanizm różnicowy (delta) dla plików APK, tak żedostarczane są jedynie zmiany. W lipcu wprowadzono w tym procesienowy algorytm bsdiff, który wykorzystując specyficzne własnościzmian w skompilowanym kodzie bibliotek, był w stanie zmniejszyćrozmiar pliku różnicowego o średnio 50%.

Zarazem wprowadzono też algorytm delta do plików rozszerzeńAPK, wykorzystywanych np. przez duże gry – tutaj pozwoliło tozmniejszyć rozmiar instalacji średnio o 12% i aktualizacji średnioo 65%. Rzecz odczuwalna przez chyba każdego, biorąc pod uwagę to,że niektóre androidowe gry zaczynają mieć rozmiary rzędu kilkugigabajtów.

Wraz z wczoraj wprowadzoną nową wersją mechanizmuaktualizacyjnego sklepu Play, udało się uzyskać jeszcze lepszewyniki. Wykorzystywano w tym celu archive-patcher,projekt tworzony z myślą o efektywnym aktualizowaniu archiwów ZIP,a przecież pliki instalacyjne APK to nic innego, jak właśniearchiwa ZIP o określonej strukturze. Przeprowadza on łatanieplik-po-pliku wewnątrz archiwum, na podstawie łatki, opisującejróżnice pomiędzy starą i nową wersją.

Szczegółowe działanie tego algorytmu zostałoopisane na blogu deweloperskim Androida. W skrócie możnazreasumować to następująco:

350191981190145985

Efekty zastosowania takiej metody są spektakularne. AplikacjaNetfliksa, o rozmiarze 16,2 MB, została zaktualizowana za pomocąłatki wielkości 1,2 MB (zmniejszenie rozmiarów o 92%). Średniodla aktualizowanych aplikacji łatki uległy zmniejszeniu o 65%. Tymczasem w wypadku poprzedniej metody, bazującej na bsdiff, udałosię zmniejszyć rozmiary łatki maksymalnie o 82%, a średnio o 50%.

Zastosowanie archive-patchera wiąże się jednak z pewnymkosztem, choć nie jest to już koszt Google’a. Aktualizacje z Playbędą wymagały większej mocy obliczeniowej, gdyż pliki muszą byćzdekompresowane i ponownie skompresowane na urządzeniu. Ocenia się,że na nowoczesnych urządzeniach będzie to trwało około sekundyna megabajt. Z analiz wynika, że jeśli rozmiar łatki zmniejsza sięo połowę, to czas jej wdrożenia zostaje podwojony. Jako jednak żeto wszystko dzieje się w tle, nie powinno być odczuwalnymobciążeniem dla użytkownika.

Tymczasem samo Google na nowej metodzie zaoszczędzi nawet 6petabajtów ruchu sieciowego dziennie.

Programy

Aktualizacje
Aktualizacje
Nowości
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Udostępnij:
Wybrane dla Ciebie
Komentarze (20)