Naturalmente, i file .dex
sono per il Dalvik VM di Android e i file .class
sono per JVM. Ma mi chiedo se hanno layout simili (Costante Pool, Campi, Metodi, Attributi, ...)? Il bytecode è diverso, ma ci sono equivalenti opcode Dalvik rispetto a quelli della JVM?Qual è la differenza tra i file .class e .dex?
risposta
Mentre un file jar Java ha molti file di classe, ogni file APK ha un solo file classes.dex, come mostrato di seguito. Secondo Google, il formato APK differisce dal formato file di classe per motivi di prestazioni e sicurezza.
C'è un Dex File Format e il Class File Format specification dalla rispettiva società.
Questi 2 file sono completamente diversi.
+1 Il disassemblatore ddexer fornisce informazioni aggiuntive http://dedexer.sourceforge.net/ – stacker
+1 per il collegamento al documenti ufficiali :) – JesusFreke
Il formato eseguibile Dalvik è il codice, la VM viene eseguita. Dalvik VM non può eseguire il bytecode Java, deve essere compilato su dex, perché usa un set di istruzioni alternativo.
Leggi il wiki article.
L'OP ne è già a conoscenza. Si prega di leggere la prima frase della domanda. –
non ha mai avuto in questo, ma questo è un primo passo: http://www.slideshare.net/Bhavsidd/diff-of-class-and-dex-file (e questo: http://www.dalvikvm.com/) – MByD
@BinyaminSharet Il secondo collegamento è parcheggiato ora e non contiene alcuna informazione utile –
Cerca su questo articolo, [Differenza tra .class e .dex file.] (http: //www.risesoftware. com/pg/blog/Bhavya/read/889/difference-between-class-and-dex-file) – bharath