dlaczego potrzebny jest niewyrównany apk?


151

Android Gradle tworzy apk w dwóch plikach binarnych: niewyrównanych i wyrównanych.

Dokument powiedział ...

Po podpisaniu pliku APK kluczem prywatnym uruchom plik zipalign. To narzędzie zapewnia, że ​​wszystkie nieskompresowane dane zaczynają się od wyrównania określonego bajtu względem początku pliku. Zapewnienie wyrównania na 4-bajtowych granicach zapewnia optymalizację wydajności po zainstalowaniu na urządzeniu. Po wyrównaniu system Android może odczytywać pliki za pomocą mmap (), nawet jeśli zawierają one dane binarne z ograniczeniami wyrównania, zamiast kopiować wszystkie dane z pakietu. Korzyścią jest zmniejszenie ilości pamięci RAM używanej przez uruchomioną aplikację.

Wydaje się, że do dystrybucji zdecydowanie zaleca się wyrównany plik APK. W moim przypadku używam tylko wyrównanego apk jako produktu końcowego i ignoruję niewyrównany apk.

Czy niewyrównany apk ma jakieś specjalne zastosowanie podczas programowania?

Odpowiedzi:


197

Jest to proces dwuetapowy. Niezrównany apk to tylko produkt pośredni.

  1. generowany jest niewyrównany apk
  2. niewyrównany zostaje wyrównany i tworzy wyrównany plik APK

3
Dziękuję za szybką odpowiedź. Więc możemy powiedzieć, że niewyrównany apk jest tylko tymczasową rzeczą?
Youngjae

1
Dobrze. Niektóre IDE tworzą go jako produkt końcowy do kompilacji debugowania, aby przyspieszyć proces kompilacji.
flx

2
czy unalign apk file pomaga debugować aplikację? Dzięki :)
hqt

11
nie, nie ma. jest to w zasadzie ta sama zawartość, co wyrównany plik zip, tylko że granice pliku nie są wyrównane do bloków 4b.
flx

49

Niezrównany (podpisany) plik APK jest potrzebny, ponieważ podpisanie wyrównanego pliku APK spowoduje cofnięcie wyrównania.

Z dokumentów :

Uwaga: zipalign można wykonać dopiero po podpisaniu pliku .apk kluczem prywatnym. Jeśli wykonasz zipalign przed podpisaniem, procedura podpisywania cofnie wyrównanie.

Zobacz tę odpowiedź po więcej. Oto szczegółowy proces kompilacji: wprowadź opis obrazu tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.