CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 4eyes81 con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: elmegio con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: bluemask con ben 43 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

[INFO][MODDING]Odex, Deodex, ZipAlign.

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Administrator L'avatar di DreamReaper


    Registrato dal
    Dec 2013
    Messaggi
    41,881
    Smartphone
    S22 Ultra,Find X2 pro,Mi 10

    Ringraziamenti
    20,676
    Ringraziato 13,117 volte in 10,479 Posts
    Predefinito

    [INFO][MODDING]Odex, Deodex, ZipAlign.



    Odex


    Deodex


    ZipAlign


    Mini guida per la spiegazione dei termini che troviamo nei changelog delle Custom Rom


    ODEX:

    I file APK (ovvero file di applicazioni) contenuti nelle ROM stock sono sostanzialmente dei file ZIP, al cui interno vi sono contenuti informativi. Il codice Java che è quello che dovrà essere eseguito per il lancio di un’applicazione viene memorizzato in un file che si chiama classes.dex che risiede all’interno del file APK. Classes.dex viene quindi inviato alla Dalvik JVM e poi elaborato. Successivamente una cache di questo file viene inviata alla Dalvik cache che si occuperà di eseguire alcune istruzioni. L’utilità di avere un file classes.dex è molto importante, in quanto si occupa di pre-caricare all’avvio del sistema operativo alcuni file dell’applicazione, in modo da garantirle tempi di avvio rapidi. Da qui scaturisce il termine ROM ODEXED, ovvero una ROM in cui sono presenti file classes.dex di ogni applicazione.

    DEODEX:

    Un’applicazione DEODEXED è invece un’applicazione il cui file classes.dex non viene pre-caricato nella Dalvik cache. In poche parole, il contenuto informativo del classes.dex viene accorpato nell’intero file APK dell’applicazione e la Dalvik cache non avrà nessun file da eseguire, in quanto la cache del file classes.dex le sarà inviata al momento dell’avvio dell’applicazione. Questo comporta una conseguente riduzione del tempo di avvio del sistema operativo (non si hanno file da pre-caricare) ma anche una conseguente leggera lentezza in più durante l’avvio di un’applicazione. Dunque, effettuare il DEODEXING di una ROM significa eliminare dalla Dalvik cache i file classes.dex delle applicazioni e fare in modo che tutto il contenuto informativo rimanga all’interno del solo file APK. Questo può essere utile soprattutto agli sviluppatori per poter realizzare delle ROM contenenti diversi file APK presi in prestito da altre ROM, ed anche per poter applicare dei temi all’interfaccia in maniera molto più rapida e semplice.

    ZIPALIGN:

    Esistono alcune istruzioni nei linguaggi di programmazione (assembly, Java, C…) che richiedono che i dati siano allineati.
    Cosa significa? Immaginate che la memoria ram si possa "vedere". Abbiamo 4 applicazioni da "sistemare" e dobbiamo fare in modo che, benchè abbiano dimensioni differenti, siano ordinate, separate e facilmente distinguibili dal sistema.
    La risposta più semplice è che si metta ogni applicazione separata dalle altre in una posizione di memoria, per cui se anche occupa meno dello spazio che gli ho riservato comunque rimarrà da sola e l'altro spazio rimarrà vuoto. In questo modo riesco a tenere separate e facilmente indicizzabili le mie applicazioni.
    Lo zipalign consiste nell’allineamento dei dati dei pacchetti delle applicazioni (i famosi file “.apk”) ogni 4 byte, così che sia più facile indicizzarli e raggiungerli con istruzioni che richiedono l’allineamento (ad esempio mmap()).

    Questo meccanismo consente di gestire più facilmente i dati quando li si deve caricare in RAM. È infatti più semplice trovare un dato sapendo che può iniziare solo ad indirizzi di memoria di tipo 4n (ovvero multipli di 4) invece che ad indirizzi totalmente casuali. Lo zipalign è dunque un metodo per far funzionare più velocemente le applicazioni e consentirne tempi di avvio più veloci.

    Spero di esservi stato utile e buon lavoro.
    Ultima modifica di DreamReaper; 24-10-14 alle 15:52
    Leggi il regolamento del Forum
    Sto Guidando (cit. Dieguccio)
    “È quando le aspettative sono ridotte a zero che si apprezza veramente ciò che si ha.”(cit. S.H.)


  2. I seguenti 2 Utenti hanno ringraziato DreamReaper per il post:

    iLuke (24-10-14),Markbass91 (24-10-14)

  3.  
  4. #2
    Androidiano VIP L'avatar di DiNG0


    Registrato dal
    Feb 2014
    Località
    Far from any road
    Messaggi
    2,412

    Ringraziamenti
    63
    Ringraziato 487 volte in 442 Posts
    Predefinito

    Grazie per queste informazioni ma come mai le hai pubblicate in questa sezione?
    Non sarebbe stato meglio inserire questo topic in una sezione android più "generale" ?
    Ser bueno no es sinónimo de ser idiota. Ser bueno es una virtud que algunos idiotas no entienden.

    si vis pacem para bellum si vis pottam para augellum

  5. #3
    Administrator L'avatar di DreamReaper


    Registrato dal
    Dec 2013
    Messaggi
    41,881
    Smartphone
    S22 Ultra,Find X2 pro,Mi 10

    Ringraziamenti
    20,676
    Ringraziato 13,117 volte in 10,479 Posts
    Predefinito

    Quote Originariamente inviato da DiNG0 Visualizza il messaggio
    Grazie per queste informazioni ma come mai le hai pubblicate in questa sezione?
    Non sarebbe stato meglio inserire questo topic in una sezione android più "generale" ?
    Ho ricevuto diversi messaggi che chiedevano informazioni sul significato dei suddetti termini nei vari changelog delle rom. Così, invece di rimandarli in android in generale (che è un pochino piena di discussioni) ho pubblicato direttamente la guida qui.
    Leggi il regolamento del Forum
    Sto Guidando (cit. Dieguccio)
    “È quando le aspettative sono ridotte a zero che si apprezza veramente ciò che si ha.”(cit. S.H.)


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy