Co oznacza „zipalign” i jakie jest jego znaczenie?
Kiedy ROM twierdzi, że jest „skompresowany”, co to znaczy i jaka jest różnica w stosunku do ROM, który nie jest „skompresowany”?
źródło
Co oznacza „zipalign” i jakie jest jego znaczenie?
Kiedy ROM twierdzi, że jest „skompresowany”, co to znaczy i jaka jest różnica w stosunku do ROM, który nie jest „skompresowany”?
Ten mechanizm jest opisany na stronie programistów Androida w następujący sposób:
zipalign to narzędzie do wyrównywania archiwów, które zapewnia ważną optymalizację plików aplikacji na Androida (.apk). Ma to na celu zapewnienie, że wszystkie nieskompresowane dane zaczynają się od określonego wyrównania względem początku pliku. W szczególności powoduje to wyrównanie wszystkich nieskompresowanych danych w pliku .apk, takich jak obrazy lub nieprzetworzone pliki, do granic 4-bajtowych. Umożliwia to bezpośredni dostęp do wszystkich części za pomocą mmap (), nawet jeśli zawierają dane binarne z ograniczeniami wyrównania. Korzyścią jest zmniejszenie ilości pamięci RAM zużywanej podczas uruchamiania aplikacji.
W skrócie: .apk
zawartość może być łatwiejsza / szybsza / bardziej optymalnie dostępna dzięki kolejności danych w spakowanym pliku.
Aby uzyskać głębsze informacje, w AddictiveTips dostępny jest „kompletny przewodnik”: Co to jest Zipalign w Androidzie i jak tworzyć aplikacje Zipalign , który odpowiada na drugą część pytania:
Zrozumiałe jest, że sytuacja byłaby zarezerwowana dla nieprzystosowanych pakietów aplikacji. Odczytywanie zasobów byłoby powolne, a użycie pamięci na wyższym końcu spektrum. Zależy to również od liczby niezapasowanych aplikacji. Na przykład, jeśli mniejsza liczba aplikacji z niewyrównaną aplikacją domową, zobaczysz wolniejsze czasy uruchamiania aplikacji. To najlepszy scenariusz. W najgorszym przypadku posiadanie szeregu nieprzystosowanych aplikacji spowoduje, że system będzie wielokrotnie uruchamiał i zabijał procesy, zmagając się z opóźnieniami i ogromnym zużyciem baterii.
struct x { uint16_t id; uint32_t data[100]; };
jeśli chcesz, aby był wyrównany 32-bit; użyciestruct x { uint16_t id; uint16_t padding; uint32_t data[100]; };
Aby dodać powyżej, jak dokładnie działa zipalign -
Źródło
źródło