Détecter la version java sur le téléphone Android lors de l'exécution


Existe-t-il un moyen de détecter par programme à partir d'une application Android la version de Java prise en charge par le téléphone?

C'est-à-dire pour voir si le téléphone peut exécuter le bytecode java 8 par exemple?

Author: Nabin Bhandari, 2018-10-01

1 answers

Il n'y a pas une telle chose appelée version Java dans l'appareil Android. Lorsque vous compilez du code Java pour créer une application Android, il est converti au format DEX à partir du fichier de classe et il s'exécute dans la machine virtuelle Dalvik ou Android Runtime (ART). La conversion du code Java au format DEX se produit au moment de la compilation, il n'est donc pas nécessaire d'avoir le dernier Java pour interpréter le fichier DEX dans l'exécution.

Mais vous devez noter que toutes les définitions de classe de Java peuvent ne pas exister dans un appareil Android. Pour par exemple, la méthode java.util.Base64.getDecoder() est disponible à partir de JDK 1.8 et peut être utilisée dans l'API Android de niveau 17 ou supérieur. Mais le code avec une expression lambda (fonctionnalité JDK 1.8) peut également s'exécuter dans des niveaux d'API inférieurs.

 10
Author: Nabin Bhandari, 2018-10-01 13:01:21