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.