mercoledì 14 settembre 2011

{GUIDA} cosa significa Odex e DeOdex in ANDROID???


Quante volte leggiamo di rom Deodex o rom odex ma non sono riusciamo a capire cosa significa e la loro differenza. Ho trovato in rete (http://www.addictivetips.com/mobile/what-is-odex-and-deodex-in-android-complete-guide/ & http://www.technologyandroid.com/2011/04/rom-cosa-significa-odex-e-deodex.html) un'ottima spiegazione comprensibile a tutti!!!

ecco la traduzione in italiano:

"Come un newbie (persona inesperta che mostra l'intenzione a migliorarsi) di Android, quello che più mi infastidisce è la terminologia che spesso i "cuochi" più famosi utilizzano! Per chi non proviene da Linux è molto difficile tenere il passo con tutte le parole di uso comune nella comunità di sviluppo. Quindi per un neofita di Android è molto difficile capire se un qualcosa può essere a lui utile o meno, visto che non sa cosa significa una particolare parola. Da quello che ho visto, questo problema si estende oltre che a molte persone inesperte anche e addirittura agli utenti medi.

Una parola che si trova comunemente quando si "gioca" con le "custom" ROM, con i vari firmware o anche per esempio con i temi, è deodexed e odexed. La maggior parte degli utenti non sanno cosa questi termini significano in realtà, e mentre gli sviluppatori magari si vantano sui loro temi o ROM per via del fatto che sono deodexed, l'utente medio non capisce che cosa sta succedendo, ignorando il significato di tale termine.

In questo articolo cercheremo di spiegare cosa significano odexed e deodexed, e che vantaggi vi sono a "montare" sul proprio device una rom/tema deodexed.

Che cos'è un file ODEX?

Nel sistema Android, le applicazioni sono disponibili in pacchetti con estensione APK. Questi pacchetti contengono alcuni file. ODEX la cui presunta funzione è quella di risparmiare spazio. In realtà un file 'ODEX' è la parte ottimizzata di un'applicazione prima di poterla avviare. Con questo tipo di file il boot può essere eseguito molto velocemente, in quanto parte di un applicazione è già precaricata nella cache. D'altra parte, però vi sono problemi nell'hacking di tali applicazioni, poichè una parte del "codice" è già stato estratto in un'altra posizione prima che l'applicazione venga eseguita.

Allora arriva il Deodex

Il processo del "deodexing" è fondamentalmente un riconfezionamento di questi file APK in un particolare modo, ossia i file sono riassemblati in altri file denominati "classes.dex". Così facendo, tutti i pezzi di un pacchetto dell'applicazione sono messi di nuovo insieme in una determinata posizione, eliminando così la preoccupazione che potrebbe creare un APK modificato che va in conflitto con alcune parti separate odexedate.

In sintesi, le ROM Deodexed (composte dai vari file APK) hanno tutti i loro pacchetti di applicazioni rigenerati e ricomposti in un unico luogo; questo consente di modificare i vari file molto più facilmente. Poiché i pezzi del codice non sono provenienti da posizioni esterne al posto in cui deve risiedere una tale applicazione, le "custom" ROM sono sempre deodexed per assicurare l'integrità del pacchetto in sè.

Come funziona?

Per i più "geek" (i più affascinati dalla tecnologia) tra di noi, il sistema operativo Android utilizza una macchina virtuale basata su Java per le applicazioni in esecuzione, chiamata Dalvik Virtual Machine. Un file deodexed, o un file .dex contiene la cache utilizzata da questa macchina virtuale (denominata Dalvik-cache). Un .ODEX file, invece d'altra parte, è una versione ottimizzata dell'applicazione che viene memorizzata accanto all'APK. Android applica tutto ciò di "default" per tutte le applicazioni di sistema!

Ora, quando si avvia un sistema basato sul sistema operativo Android, la cache dalvik è costruita utilizzando questi file .ODEX, che permettono al sistema operativo di conoscere in anticipo quali applicazioni saranno caricate, e quindi riesce ad accelerare il processo di boot.

Con gli APK deodexati, uno sviluppatore mette in realtà il file .ODEX all'interno dei rispettivi file APK. Dal momento che tutto il codice è contenuto all'interno del file APK, diventa possibile modificare qualsiasi pacchetto applicativo senza entrare in conflitto con il sistema di esecuzione proprio del sistema operativo.

VANTAGGI e SVANTAGGI??

Il vantaggio di deodexing è, come abbiamo già detto quello di poter modificare gl applicativi APK molto più velocemente e senza entrare in conflitto con il sistema di esecuzione del sistema operativo. Questo è molto diffuso nelle "custom" ROM e nei temi. Uno sviluppatore costruisce una ROM personalizzata scegliendo praticamente sempre di deodexare il pacchetto ROM, dal momento che non solo gli permette la successiva modifica dei vari APK, ma lascia anche più spazio post-installazione.

D'altra parte, dato che i file .ODEX dovevano costruire più rapidamente la cache Dalvik, togliendo essi significa che i tempi di avvio iniziale sono molto più alti. Tuttavia, questo è vero solo per il primo avvio dopo il deodexing. Tempi di avvio più lunghi possono tornare ad essere mostrati solo se la cache Dalvik è nuovamente cancellata per qualche motivo.

Sperando di essere stato chiaro, vi auguro un buon "flash" di rom deodexate!! :)) "

Per sapere se la vostra ROM è una Odex o DeOdex, è molto semplice, basta utilizzare "Root Explorer" e vedere se in system/app sono presenti, o meno, dei file .odex! ;D


Un Saluto da SpiGaDROID... al prossimo PoSt!!!
p.s. Ricorda sempre...==>

6 commenti:

  1. Certo! se mi dai la tua mail, ti invio un mess, così possiamo iniziare una bella chiacchierata :D p.s. complimenti per il tuo blog! ho aggiunto il tuo technology android nei blog che seguo... spero che anche tu diventerai un mio seguace (follower) sia sul blog che su FB: https://www.facebook.com/SpiGaDROID... Ciauuuu :D

    RispondiElimina
  2. Questo commento è stato eliminato da un amministratore del blog.

    RispondiElimina
  3. Complimenti per l'ottima spiegazione chiara e concisa. Un saluto!

    RispondiElimina