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. –
- 1. qual è la differenza tra `public class` e just` class`?
- 2. qual è la differenza tra -keep class e -dontwarn
- 3. iPhone SDK: qual è la differenza tra #import e @class?
- 4. Qual è la differenza tra i file .lib e .a?
- 5. Qual è la differenza tra i file apklib e jar?
- 6. Qual è la differenza tra i file .htc e .js?
- 7. Qual è la differenza tra [Class new] e [[Class alloc] init] in iOS?
- 8. Qual è la differenza tra ptr [i] e * (ptr + i)?
- 9. Qual è la differenza tra i segmenti .rdata e .idata?
- 10. Qual è la differenza tra i compressori 7z e lzma?
- 11. Qual è la differenza tra aar e file di guerra?
- 12. qual è la differenza tra:.! e: r !?
- 13. Qual è la differenza tra `##` e `hashCode`?
- 14. Qual è la differenza tra .ToString() e + ""
- 15. Qual è la differenza tra ("") e (null)
- 16. Qual è la differenza tra% e %% in un file cmd?
- 17. Qual è la differenza tra = e: =
- 18. Qual è la differenza tra Verilog! e ~?
- 19. Qual è la differenza tra? : e ||
- 20. qual è la differenza tra [[], []] e [[]] * 2
- 21. Qual è la differenza tra $ e $$?
- 22. Qual è la differenza tra dict() e {}?
- 23. Qual è la differenza tra " " e ""?
- 24. Qual è la differenza tra {0} e ""?
- 25. Qual è la differenza tra {0} e +?
- 26. Qual è la differenza tra. e # in un file css?
- 27. Qual è la differenza tra tutti i progetti e sottoprogetti
- 28. Qual è la differenza tra printf ("% i") e printf ("% d")
- 29. Qual è la differenza tra i pacchetti android.opengl e javax.microedition.khronos.opengles?
- 30. qual è la differenza tra i comandi linux e unix?
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