QNA > P > Poiché Si Dice Che Java Sia Indipendente Dalla Piattaforma, Allora Perché Non Possiamo Eseguirlo Direttamente Sui Dispositivi Android?

Poiché si dice che Java sia indipendente dalla piattaforma, allora perché non possiamo eseguirlo direttamente sui dispositivi Android?

Certo che possiamo eseguire programmi scritti in Java su Android ma non direttamente. Prima del rilascio di "Kotlin" il linguaggio ufficiale per lo sviluppo di Android, Java era ampiamente utilizzato per sviluppare applicazioni Android e anche ora continua ad essere utilizzato.

La procedura standard per eseguire un programma Java è questa

main-qimg-bb735dc55f24e7025b1643b936dd0c89.webp

Il file ".java" viene convertito in file eseguibile ".class" dal compilatore java e il file di classe generato è indipendente da qualsiasi sistema operativo, cioè può essere eseguito su qualsiasi sistema operativo. Per eseguire questo file di classe è necessaria la JVM che è specifica per il sistema operativo.

In Android lo scenario è leggermente diverso

main-qimg-2e0e9feb9602856f281e5c0446fe47a3.webp

In Android usiamo DVM (Dalvik Virtual Machine) invece di JVM (Java Virual Machine) perché:-

  1. JVM è stata progettata per Java, tenendo in mente le applicazioni Desktop. La differenza principale tra desktop e mobile è che i cellulari hanno una quantità molto limitata di memoria (RAM) e una minore velocità della CPU rispetto a desktop e laptop. La JVM è molto pesante e richiede molta RAM e velocità della CPU per eseguire un programma. Poiché i cellulari non possono permettersi tanta RAM e CPU, Android ha bisogno di una versione più ottimizzata e leggera della JVM. La DVM è stata creata per sostituire la JVM. La DVM è pensata per i dispositivi embedded che hanno meno RAM e velocità della CPU.
  2. La JVM è lenta perché è basata sullo stack mentre la DVM è basata sui registri.

Diciamo che un'applicazione Android ha bisogno di quattro file ".class" per funzionare. Questi file di classe sono passati attraverso il compilatore DX che combina tutti questi file di classe e genera un file "classes.dex" dopo aver allegato i pacchetti richiesti. Questo DEX può essere compreso da Dalvik Virtual Machine.

Di Geraldine Hamed

C'è qualche app o software con cui possiamo cambiare la nostra voce in quella di un'altra persona? :: Come disattivare la sovrapposizione dello schermo su un Gionee F103 Pro
Link utili