Cos'è un file .dex? Cos'è dexopt? Che cos'è odex? Cos'è dexoat? Cos'è ELF? Come funziona tutto questo?
Cercherò di essere il più breve possibile
- Tutto il tuo codice Java nel tuo progetto Android viene compilato in file .class dal compilatore Java.
- Lo strumento dex (dx) converte tutti i tuoi file .class in file .dex (Dalvik byte code) in modo che possano essere confezionati in file .apk.
- Prima che arrivasse Android 5.0 (Lollipop), il sistema android usava uno strumento chiamato dexopt che ottimizzava i file .dex e produceva un file .odex che era simile ai file .dex originali, tranne che usava alcuni opcode ottimizzati.
- I file .odex e .dex sono eseguiti da Dalvik. Dalvik usa anche la compilazione JIT (just-in-time) che è stata introdotta in Android 2.2 "Froyo" per compilare le parti di codice eseguite frequentemente in codice macchina nativo che ha migliorato le prestazioni.
- Da Android 5.0 "Lollipop", il sistema android usa uno strumento chiamato dex2oat che converte i file .dex in file ELF che possono essere eseguiti nativamente. Quindi, invece di avere bytecode che viene interpretato da una macchina virtuale, ora ha codice nativo che può essere eseguito nativamente dal processore. Questo si chiama compilazione AOT (ahead-of-time).
Questi diagrammi ti aiuteranno a capire meglio i concetti
Per informazioni più approfondite, segui questi link
Android Open Source Project
Build System Overview
Dalvik (software)
Tu puoi commentare se vuoi chiedere qualcosa di più. Spero sia stato d'aiuto :)
Articoli simili
- Il Samsung S20 FE 5G supporterà Dex compreso il dock Dex e la connettività monitor / ethernet?
- Cos'è Samsung Dex?
- Il telefono Samsung è bloccato al logo Samsung, ho provato di tutto in hard reset, e niente funziona. Qualche idea su come aggirare questo problema?
- Il mio telefono è caduto e tutto funziona bene ma la mia scheda SD, che non è rotta, non funziona. Come posso recuperare i miei dati?