Zipalign

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:

  • Jeśli używasz apksigner, musisz użyć zipalign przed podpisaniem pliku APK. Jeśli podpiszesz pakiet APK za pomocą apksigner i wprowadzisz w nim dalsze zmiany, jego podpis zostanie unieważniony.
  • Jeśli używasz jarsigner (niezalecane), musisz użyć zipalign po podpisaniu pliku APK.

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.