Dalvik (machine virtuelle)

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Machine virtuelle Dalvik)
Aller à : navigation, rechercher
Dalvik
Développeur Dan Bornstein
Environnement Android
Type Machine virtuelle
Politique de distribution incorporée dans des smartphones et tablettes
Licence Apache License 2.0
Site web http://code.google.com/p/dalvik

Dalvik est une machine virtuelle destinée aux téléphones mobiles et tablettes tactiles, qui est incorporée dans le système d'exploitation Android[1],[2]. Dalvik est destiné à permettre l'exécution simultanée de plusieurs applications sur un appareil de faible capacité (peu d'espace mémoire et peu de puissance de calcul)[1].

Crée par Dan Bornstein, Dalvik fait partie du runtime, le moteur qui permet l'exécution des applications pour Android[1]. Le nom est celui d'un village de pêcheurs en Islande, pays d'origine de son auteur[1].

Dalvik offre une alternative à la machine virtuelle de la technologie Java. Les fichiers de bytecode de la technologie Java sont préalablement transformés et consolidés dans un fichier .dex (Dalvik Executable) en vue de leur utilisation par Dalvik.

Présentation[modifier | modifier le code]

Le but d'une machine virtuelle comme Dalvik est de permettre d'exécuter le même programme sur une grande variété d'appareils, quelles que soient leurs caractéristiques techniques. Le code exécutable du programme (dit bytecode) est transformé à la volée en instructions spécifique à l'appareil sur lequel le programme est exécuté - c'est la fonction de compilation just-in-time de la machine virtuelle[3]. Dalvik est un des composants clé d'Android[2]. Il est destiné à permettre l'exécution simultanée de plusieurs applications sur un appareil de faible capacité (peu d'espace mémoire et peu de puissance de calcul)[1]. La capacité ordinaire des appareils mobiles contemporains de 2011 étant équivalente à celle d'un ordinateur personnel vieux de dix ans[1].

La technologie Java et Dalvik

Java est un langage de programmation destiné à être utilisé sur une grande variété d'appareils, selon la devise « write once, run anywhere » (en français écrire une fois, utiliser partout). Les programmes écrits dans ce langage sont traduits en bytecode qui sera ensuite exécuté par une machine virtuelle telle que celle de l'environnement d'exécution Java de Oracle. L'objectif de Dalvik est de fournir une machine virtuelle alternative, adaptée aux limitations des appareils mobiles[3].

Dalvik exécute un bytecode différent, dont les instructions sont basées sur des registres, alors que la machine virtuelle classique de la technique Java est basée sur la pile. Une machine à registres nécessite moins d'instructions pour effectuer les mêmes opérations qu'une machine à pile et est par conséquent mieux adaptée à un appareil ayant peu de puissance de calcul. En raison de cette différence, les fichiers de bytecode Java ordinaires ne peuvent pas être exécutés tel quel par Dalvik, et un programme inclus dans le SDK Android transforme au préalable ces fichiers en DEX (Dalvik Executable) - les fichiers de bytecode pour Dalvik[3]. Les fichiers exécutables pour Dalvik (.dex) sont créés par consolidation des fichiers de bytecode Java. La taille du fichier .dex est typiquement la moitié de la taille des fichiers de bytecode Java desquels il est issu[4].

La machine virtuelle Dalvik se sert des services offerts par le noyau Linux[2]. Dans Android il est également possible de créer des applications qui n'utilisent pas Dalvik, et qui se servent directement du noyau Linux, cependant cette technique n'offre aucun avantage et est rarement utilisée[2].

Tous les services fournis par Android ainsi que les moyens matériels des appareils sont mis à disposition à travers Dalvik[2]. Cette machine virtuelle joue le rôle d'écran qui cache les caractéristiques techniques de l'appareil sur laquelle elle est exécutée[2].

Dalvik sera bientôt remplacé par ART (Android RunTime) sur les prochains systemes Android. ART est déjà disponible dans les dernières versions d'Android via le menu développeur (qu'il faut débloquer). ART n'est pour le moment pas encore compatible avec toutes les applications Android.

* Dalvik sera certainement remplacé dans le futur par ART (Disponible à partir de Android 4.4, en version expérimentale.)

Références[modifier | modifier le code]

  1. a, b, c, d, e et f (en)Satya Komatineni et Dave MacLean,Pro Android 4,Apress - 2012,(ISBN 978-1-4302-3930-7)
  2. a, b, c, d, e et f (en)Reto Meier,Professional Android 4 Application Development,John Wiley & Sons - 2012,(ISBN 9781118223857)
  3. a, b et c (en)Onur Cinar,Android Apps with Eclipse,Apress - 2012,(ISBN 9781430244356)
  4. (en)Android Apps Security,Sheran Gunasekera,(ISBN 9781430240624)

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]