In Android, ZipAlign viene utilizzato per allineare le risorse su 4 byte confini per accelerare risorse carico:verifica Zipalign
Il codice di risorse manipolazione in Android possono accedere alle risorse in modo efficiente quando sono allineati su 4 -contatti i confini con la mappatura della memoria. Ma per risorse che non sono allineate (vale a dire quando zipalign non è stato eseguito su un apk), deve tornare a leggerle esplicitamente-che è più lento e consuma memoria aggiuntiva.
Dopo aver eseguito lo strumento, è possibile convalidare l'allineamento utilizzando il comando.
zipalign -c -v 4 application.apk
Questo produce un rapporto e indica se ci sono errori o meno. Nel mio caso, questi rapporti indicano errori di allineamento, ma il primo numero, che presumo sia la posizione delle risorse nell'APK finale, sembra mostrare che alcune risorse non sono allineate sui 4 byte.
Ecco un all'inizio di questa relazione:
Verifying alignment of APP-signed-aligned.apk (4)...
50 META-INF/MANIFEST.MF (OK - compressed)
24245 META-INF/KEYS.SF (OK - compressed)
49830 META-INF/KEYS.DSA (OK - compressed)
50683 AndroidManifest.xml (OK - compressed)
53096 assets/Assets/DB_Normal.db (OK)
595425 assets/Assets/Common/DM/Structures.xml (OK - compressed)
Cosa mi sono perso? Il primo numero è la posizione della risorsa? Ad esempio, Structures.xml
sembra essere a 595425
, che non è un multiplo di 4 byte.
Questo ha perfettamente senso, grazie! –