Qual è la differenza tra ROM odexed e deodexed?


43

Qual è la differenza tra ROM odexed e deodexed ? Quali sono le ROM standard (stock) fornite dalla nave?

Risposte:


39

Un .dexfile è sostanzialmente una versione bytecode compilata di un'app che è stata creata per la VM Dalvik su cui vengono eseguite le app Android. Credo che sia l'abbreviazione di Dalvik Executable, ma non sono sicuro di ricordarmelo correttamente.

Un .odexfile è un .dexfile ottimizzato (da qui la 'o'), il che significa che è stato sostanzialmente pre-compilato per una piattaforma specifica. Il vantaggio è che il tempo di avvio è molto più veloce poiché la VM non deve eseguire alcuna ottimizzazione all'avvio / runtime. Gli svantaggi sono 1) Che occupa dello spazio extra e 2) Un'app odexed non funzionerà correttamente se viene inserita su un altro dispositivo e deve avere il .odexfile associato per funzionare.

Le ROM sono in genere rilasciate in forma deodexed perché possono essere tematiche e modificate abbastanza facilmente, mentre il tema / modifica di una ROM odex è sostanzialmente impossibile (nella migliore delle ipotesi le cose andrebbero in crash come un matto). Alcune persone scelgono anche di rilasciare le loro ROM in versioni odex per le persone che preferiscono i miglioramenti delle prestazioni.

La maggior parte delle ROM di scorta che ho visto sono odexate, presumo perché i vettori / produttori vogliono aumentare le prestazioni. Inoltre non hanno alcun tipo di metodi di temi ufficiali, quindi probabilmente non gli importa se non puoi cambiare i colori delle tue icone di stato o del testo del tuo sistema o quant'altro. Inoltre hanno il vantaggio di sapere su quale dispositivo vogliono far funzionare il loro sistema, quindi .odeximmagino che possano precompilare i file molto facilmente. Come bonus aggiuntivo, rende difficile estrarre i .apkfile dal dispositivo e condividerli con le persone.

Modifica: dal momento che mi sono appena reso conto che non ero molto esplicito sulla differenza qui - una ROM "odexed" è quella in cui le app sono state precompilate e quindi contengono .odexfile associati che sono esterni ai .apkfile. Una ROM "deodistrata" è quella in cui i dati che sarebbero stati ottimizzati nei .odexfile sono stati più o meno riuniti nei .apkfile (il che significa che non è ottimizzato ma sostanzialmente indipendente dalla piattaforma), quindi i .apkfile sono autonomi e non ci sono .odexfile . Questo di solito viene fatto solo con un'utilità di deodexing, come smali / baksmali .


L'ultima modifica, rendendo le cose più esplicite, è stata molto utile. +1
rbrito,

7

Personalmente volevo sapere la risposta a questo poco tempo fa. Ecco cosa mi è venuto in mente:

Odexed e Deodexed

Una ROM standard dovrebbe essere odexata per il rilascio che fornisce un caricamento più fluido e più veloce delle app in memoria. Ogni .apk ha un .odex corrispondente. Quando l'applicazione viene utilizzata dal sistema o dall'utente, il .odex viene utilizzato per avviare il caricamento dell'app. Una ROM deodorata ha solo il file .apk. Quando l'applicazione viene richiamata in memoria solo estraendo i dati dal suo .apk, questo richiede più tempo a causa della non ottimizzazione per un più facile recupero dal sistema.

Le domande più frequenti che mi vengono poste troppo spesso sono:

  1. Perché la ROM personalizzata deodistrata?
  2. Dovrei usare una ROM odexed o deodexed?

Per rispondere a queste domande si riduce a una parola, temabilità. Se parli con qualcuno che ha come tema una ROM, ti diranno che è estremamente più semplice creare un tema su una ROM deodistrata. Da quando abbiamo iniziato a utilizzare le ROM deodexed, ora i temi potevano creare temi da applicare a una ROM piuttosto che la noiosa opzione di tema della stessa ROM (rilasciare una ROM personalizzata per un tema). Se usi una ROM odexata e provi ad applicare temi, non funzionerà o solo temi alcuni aspetti visivi, che ti daranno una terribile interfaccia utente da provare.

Deodex Cons

Scommetto che ora ti stai chiedendo perché ... perché c'è anche un'opzione per scaricare una ROM personalizzata che è odexed? La risposta è la velocità. Ricordi come ho detto che i file odex sono ottimizzati per un più facile recupero? In poche parole ... è ottimizzato (come indicizzare una tabella di dati) in modo che il sistema possa aprire .apk più velocemente.

Deodex e zipalign

Tutti volevano il meglio di entrambi i mondi così rapidamente dopo che la tendenza deodexed ha iniziato a raggiungere il picco, questi esperti sviluppatori ROM hanno trovato una soluzione per zipalign all'avvio. Ciò ottimizza ogni .apk ad ogni riavvio, consentendo quindi al sistema di accedere alle applicazioni in modo più efficiente e, soprattutto, più veloce. Naturalmente, lo svantaggio è che i tempi di avvio sono leggermente più lenti.

Sommario

Se hai la possibilità di scaricare la ROM personalizzata odexed o deodexed, andrei semplicemente con la ROM deodex. Non sai mai quando vorresti provare un tema o apportare alcune modifiche da solo ed è bello avere opzioni semplici piuttosto che eseguire il flashing di una ROM completamente nuova. Con i dispositivi più recenti potresti anche non notare una notevole differenza di zipalign all'avvio. Se il tuo dispositivo è piuttosto lento e obsoleto, allora suggerirei di pensarci un po 'più difficile. Scommetto che alcuni di voi preferirebbero ottenere una bella ROM minimizzata (odexed) per prestazioni e velocità migliori rispetto alla personalizzazione dell'interfaccia utente.

Se sei nuovo sull'argomento puoi trovare alcuni termini comuni che si trovano sul mio articolo originale qui: http://codeversed.com/deodexed-vs-odexed-rom

Altrimenti, quanto sopra ti mostra tutto ciò che devi sapere. Se ho perso qualcosa, per favore fatemi sapere :)


1

Un file .dex (eseguibile dalvik) è sostanzialmente simile ai file .exe di Windows (tranne nella lingua di Dalvik VM, invece del codice compilato). Fondamentalmente .odex (eseguibile dalvik ottimizzato) e deodex (eseguibile dalvik ottimizzato) si riferisce al modo in cui i file di risorse vengono gestiti nelle applicazioni. Il .odex è un file .dex che è stato ottimizzato dal programma dexopt: http://www.netmite.com/android/mydroid/dalvik/docs/dexopt.html

Vantaggio

  • odex è più veloce
  • rende più facile il tema

Svantaggio

  • deodex è più lento al primo avvio
  • i file .odex li rendono più difficili

"Deodex" non significa .dex de-ottimizzato, significa rimuovere i file .odex (de-aggiungere i file .odex, in sostanza). eldarerathis ha ragione.
Matteo Leggi il

Grazie per aver fornito le informazioni critiche di Odexing sulle risorse! Detto questo: il confronto exe non è eccezionale.
Paul,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.