Google dodaje obsługę algorytmu kompresji Brotli, aby zapewnić szybsze aktualizacje OTA Androida. Google używa już Brotli do pobierania aplikacji ze Sklepu Play
Rozmiar aktualizacji OTA nie jest czymś, o czym większość ludzi tak naprawdę myśli, ponieważ aktualizacje są ogólnie rzecz biorąc automatycznie pobierane w tle przez Wi-Fi, ale w rzeczywistości jest to wielka sprawa na serwerze koniec. Zaoszczędzenie nawet kilku megabajtów danych może mieć ogromne znaczenie, ponieważ zyski są pomnażane przez potencjalnie setki tysięcy użytkowników. W tym celu Google już to zrobił pracujący Do przynieść jego Brotli algorytm kompresji do Androida w celu szybszych aktualizacji OTA.
Co to jest algorytm kompresji Brotli?
Brotli to algorytm kompresji opracowany przez a kilku pracowników Google co znacznie poprawia współczynnik kompresji w porównaniu z innymi algorytmami, takimi jak GZIP, jednocześnie wykazując imponującą prędkość dekompresji. Wadą jest to, że kompresowanie plików za pomocą algorytmu Brotli jest dość powolne, dlatego zazwyczaj należy go unikać podczas kompresji zawartości dynamicznej.
Testy kompresji. Źródło: Jeroena Oomsa
Z drugiej strony dowolna zawartość statyczna, taka jak strony internetowe nadają się do kompresji za pomocą algorytmu Brotli. Obejmuje to pliki aplikacji pobrane ze sklepu Google Play. Ponieważ jest już dobrze 2 miliardy urządzeń z Androidem w tym przypadku usunięcie nawet niewielkich ilości danych podczas udostępniania pliku łatki ze Sklepu Play może skutkować ogromnymi zyskami dla Google. Algorytm Brotli, gdy jest używany Pobieranie aplikacji ze Sklepu Play, oszczędza użytkowników 1,5 petabajta (1,5 miliona gigabajtów) danych każdego dnia.
W jaki sposób Brotli ulepszy aktualizacje OTA?
Obecnie aktualizacje OTA nie są udostępniane użytkownikom tak często, jak aktualizacje aplikacji Sklepu Play, ale w porównaniu z nimi są one zwykle znacznie większe. Na przykład pełny pakiet OTA przed kompresją może mieć rozmiar 2 GB. Ile danych można zaoszczędzić dzięki pakietowi OTA?
Twórca LineageOS dla Motoroli Moto G4 donosi, że mu się to udało zaoszczędź 50 megabajtów na nieoficjalnej wersji. Biorąc pod uwagę fakt, że przeciętny build Moto G4 LineageOS to ok 350 megabajtów, to dość radykalna poprawa. Jeśli w każdym OTA zostanie zapisanych nawet 10 MB danych, ogólne zmniejszenie przepustowości może być znaczne, ponieważ Google musi udostępnić pakiet aktualizacji setkom tysięcy użytkowników.
Co więcej, ponieważ Brotli zapewnia również ulepszone prędkości dekompresji, oznacza to również, że aktualizacje OTA mogą być stosowane szybciej. Aktualizacje OTA są wysyłane do każdego urządzenia w postaci archiwum, więc przed wprowadzeniem poprawek można je wprowadzić za pośrednictwem bsdiff, archiwum należy zdekompresować. Ponieważ dekompresja Brotli jest dość szybka, oznacza to, że dekompresja archiwum również będzie szybka, co spowoduje szybsze łatanie plików systemowych.
Jednakże użytkownicy urządzeń ze schematami partycji A/B, takich jak Google Pixel/Pixel 2, Essential Phone, Razer Phone, Moto Z2 Siła, I Xiaomi Mi A1 prawdopodobnie nie zauważy tej szczególnej poprawy, ponieważ aktualizacje są płynnie stosowane na nieaktywnej partycji w tle. Jednak nawet w przypadku tych urządzeń mniejszy pakiet aktualizacji OTA ze względu na kompresję Brotli spowoduje zmniejszenie przepustowości dla użytkownika.
Podziękowania dla emerytowanego moderatora forum/uznanego programisty XDA cybojenix za wskazówkę!