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ęt

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

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:

Obraz

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

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (20)