web-dev-qa-db-fra.com

Qu'est-ce que Dalvik et Dalvik-cache?

Je sais que cela peut être une question de base dans Android. Mais qu'est-ce que Dalvik et Dalvik-cache?

72
Android Killer

Dalvik est la machine virtuelle utilisée par Android. Il est généralement considéré comme une machine virtuelle Java, bien que cela ne soit pas précisément correct. Il utilise un modèle objet identique à Java et son modèle de mémoire est également presque équivalent. Mais la dalvik VM est une machine virtuelle basée sur des registres, par opposition aux machines virtuelles Java, qui reposent sur une pile.

En conséquence, il utilise un bytecode complètement différent de Java. Cependant, le SDK Android inclut l'outil dx pour convertir le bytecode Java en bytecode dalvik, ce qui vous permet d'écrire des applications Android en Java.

Quand vous dites "dalvik-cache", je suppose que vous parlez du répertoire/data/dalvik-cache qui se trouve sur des appareils Android typiques. Lorsque vous installez une application sur Android, celle-ci effectue certaines modifications et optimisations sur le fichier dex de cette application (le fichier qui contient tout le bytecode de dalvik de l'application). Il met ensuite en cache le fichier odex (optimisé dex) résultant dans le répertoire/data/dalvik-cache , afin de ne pas avoir à exécuter le processus d'optimisation à chaque chargement d'une application.

good reference

125
JesusFreke

Dalvik est la machine virtuelle basée sur Java qui exécute des applications Android sur Android. Dalvik-cache est la zone de cache de la machine virtuelle Dalvik. Elle est créée lorsque Dalvik VM optimise l'exécution de votre application.

Vous pouvez consulter davantage sur Internet les différences entre les codes d’opération Dalvik VM et les codes d’opération "normaux" Java VM si vous le souhaitez.

2
omermuhammed

Dalvik Caches ne sont rien d'autre que la compilation temporaire de code d'application stocké en tant qu'exécutables. Comme ceux-ci peuvent être compilés dynamiquement à partir du code de l'application d'origine situé à l'extérieur du cache Dalvik, vous pouvez vider le cache Dalvik sans pénalité réelle.

0
user5065310