Se sei un fan sfegatato di Android, è probabileforte di provare con entusiasmo nuovi temi, ROM personalizzate e tutte queste mod per il tuo dispositivo. Uno dei principali punti di confusione è la terminologia associata a queste mod - qualcosa di abbastanza familiare per gli sviluppatori, ma non molto per l'utente inesperto. Due delle parole più comuni nelle ROM e nei temi personalizzati sono "deodexed" e "zipalign". Qualche giorno fa, abbiamo trattato in dettaglio "deodexed". In questo articolo, esploreremo cosa significa zipalign e come gli APK possono essere allineati con zip.

CHE COS'È ZIPALIGN?
zipalign è uno strumento di allineamento dell'archivio introdottoprima volta con 1.6 Android SDK (kit di sviluppo software). Ottimizza il modo in cui viene pacchetto un pacchetto di applicazioni Android (APK). Ciò consente al sistema operativo Android di interagire con l'applicazione in modo più efficiente, e quindi ha il potenziale per rendere l'applicazione e l'intero sistema molto più veloce. Il tempo di esecuzione è ridotto al minimo per le applicazioni zipaligned, con conseguente minore quantità di consumo di RAM durante l'esecuzione dell'APK.
COME FUNZIONA ESATTAMENTE?
In un ambiente operativo Android, file di datimemorizzato in ciascun pacchetto applicativo sono accessibili da più processi, ad esempio il programma di installazione leggerà il manifest di dati per determinare le autorizzazioni associate; il server di sistema può leggere queste risorse per molteplici motivi, come la visualizzazione delle notifiche; l'applicazione Home, ad esempio, leggerà le risorse per ottenere il nome e l'icona dell'applicazione. Poiché Android si basa su una vera infrastruttura operativa multi-tasking, questi file sono continuamente e ripetutamente accessibili. Infine, ma non meno importante, l'applicazione stessa legge i dati manifest.
Poiché Android è basato su Linux, la mappatura della memoria gioca aruolo chiave nella gestione efficiente dei processi. In sostanza, l'allineamento ottimale per il codice di gestione delle risorse del sistema operativo Android è i limiti di 4 byte. Ciò significa che, se gli APK sono mappati in memoria su limiti di 4 byte e allineati di conseguenza, il sistema operativo non dovrà "leggere" l'intero pacchetto dell'applicazione per raggiungere il manifest di dati desiderato. Ogni processo di sistema saprà in anticipo dove cercare le risorse desiderate e quindi eseguirà molto più agevolmente e rapidamente.
Riassumendo, zipaligning di un APK risulta in tuttoi dati non compressi all'interno del pacchetto devono essere allineati su limiti di 4 byte, consentendo l'accesso a tutte le parti direttamente con la mappa di memoria. Il consumo di RAM viene ridotto durante l'esecuzione perché il codice di query non deve leggere l'intero pacchetto dell'applicazione.
SVANTAGGI DI APK NON ALLEGATI
Abbastanza comprensibile, la situazione sarebbe riservataper pacchetti di applicazioni non allineati. La lettura delle risorse sarebbe lenta e l'utilizzo della memoria sarebbe all'estremità superiore dello spettro. Dipenderebbe anche da quante applicazioni non allineate sono presenti. Ad esempio, se un numero inferiore di applicazioni con un'applicazione home non allineata, vedresti tempi di avvio delle applicazioni più lenti. Questo è lo scenario migliore. Nel peggiore dei casi, la presenza di un numero di applicazioni non allineate comporterà l'avvio e l'uccisione ripetuta dei processi, la lotta con ritardi e l'esaurimento della batteria.
COME LO FARE, POI?
Come accennato in precedenza, lo strumento zipalign è diventato parte dell'SDK di Android dall'1.6 in poi. Può essere trovato nella cartella "strumenti" dell'SDK. Per usarlo, esegui semplicemente il comando:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
dove infile.apk è il file di origine e outfile.apk è il file di output.
Inoltre, puoi anche verificare l'allineamento di un file APK usando il seguente comando:
zipalign -c -v <alignment> existing.apk
dove existing.apk può essere qualsiasi pacchetto applicativo necessario per essere verificato. Anche il <Allineamento> tag in entrambi i comandi deve essere un integralevalore (altrimenti il comando tornerà non valido). Questo valore, sebbene possa essere qualsiasi numero intero, DEVE sempre essere 4, il che fornirebbe un allineamento a 32 bit. Qualsiasi altro valore e non farà effettivamente nulla.
Infine, per i flag utilizzati in questi comandi,
- -f : sovrascrive outfile.zip esistente
- -v : darà un output dettagliato
- -c : confermerà l'allineamento di un determinato file
PAROLA DI ATTENZIONE: l'operazione zipalign deve essere eseguita solo dopo hai firmato il file APK con il tuo privatochiave. Se la zip è allineata prima della firma, la procedura di firma disturberà l'allineamento. Lo stesso vale per qualsiasi altra modifica, aggiunta o rimozione al file APK. Qualsiasi modifica dopo aver eseguito zipalign annullerà l'allineamento.
Clausola di esclusione della responsabilità: Questa guida è destinata esclusivamente a scopi didattici. Questo non è in alcun modo un sostituto del toolkit per sviluppatori Android, né destinato a essere utilizzato a scopi di sviluppo. AddictiveTips non fornisce alcun supporto relativo al materiale qui presentato.
Commenti