zipalign
to narzędzie do wyrównywania archiwum ZIP, które pomaga ustalić, czy wszystkie nieskompresowane pliki w archiwum są wyrównane względem ich początku. Dzięki temu pliki będą dostępne bezpośrednio w mmap(2)
, co eliminuje konieczność kopiowania tych danych do pamięci RAM i zmniejsza wykorzystanie pamięci przez aplikację.
Użyj narzędzia zipalign
, aby zoptymalizować plik APK przed udostępnieniem go użytkownikom. Jeśli tworzysz treści w Android Studio, które korzysta z wtyczki Androida do obsługi Gradle (AGP), robi się to automatycznie. W takim przypadku nadal używaj polecenia zipalign
, aby sprawdzić, czy plik APK jest wyrównany, ale nie musisz go dopasowywać. Ta dokumentacja jest przeznaczona głównie dla administratorów
niestandardowych systemów kompilacji.
Uwaga: zipalign
musisz użyć w konkretnym momencie procesu kompilacji. Ten punkt zależy od używanego narzędzia do podpisywania aplikacji:
Aby wyrównać, zipalign
zmienia rozmiar pola "extra"
w sekcjach nagłówka pliku lokalnego ZIP. Ten proces może też zmieniać istniejące dane w polach "extra"
.
Wykorzystanie
Jeśli Twój plik APK zawiera biblioteki udostępnione (pliki .so
), użyj atrybutu -p
, aby mieć pewność, że są one wyrównane do granicy strony 4 KiB odpowiedniej dla aplikacji mmap(2)
. W przypadku innych plików, których wyrównanie jest określane przez argument obowiązkowego dopasowania do zipalign
, Android Studio ustawia rozmiar na 4 bajty w systemach 32-bitowych i 64-bitowych.
Aby wyrównać wymiar infile.apk
i zapisać go jako outfile.apk
:
zipalign -p -f -v 4 infile.apk outfile.apk
Aby sprawdzić wyrównanie zasobu existing.apk
, użyj tego polecenia. Jeśli tworzysz treści za pomocą Androida Studio lub AGP, za pomocą tego polecenia sprawdź, czy Twój pakiet APK jest dopasowany.
zipalign -c -v 4 existing.apk
Opcje
Dostępne opcje zipalign
znajdziesz w tabeli poniżej:
Opcja | Opis |
---|---|
-c | Sprawdza tylko wyrównanie (nie modyfikuje pliku). |
-k | Zastępuje istniejący plik wyjściowy. |
-godz. | Wyświetla pomoc do narzędzia. |
-P | Wyrównuje nieskompresowane pliki .so . |
-v | Szczegółowe dane wyjściowe. |
-z | Wykonuje kompresję za pomocą Zopfli. |