Annotations sous Android

 

Les annotations Android fonctionnent comme les annotations JAVA. D'ailleurs, celles-ci sont utilisables sous Android.

 

@TargetApi(Build.VERSION_CODES.versionAndroid)

ou versionAndroid est l'une des versions de l'API du système Android.

Cette annotation permet d'indiquer au compilateur que la fonction présente dans le code ne sera déclenchée que lorsque l'application tournera à partir de la version Android stipulée en paramètre de l'annotation. A vous de faire en sorte que cela soit effectivement le cas, sinon l'application se plantera lamentablement !

Cette annotation est intéressante lorsque vous développez une application pour une version minSDK (L'attribut uses-sdk.minSdkVersion) pour laquelle une fonction n'existait pas encore:

- Sans l'annotation, le compilateur refusera de produire le code dans une version du SDK ne supportant pas la fonction.

- Il déclenchera un warning si le SDK utilisé lors de la compilation connait la fonction, mais que la version minSDK implique une possibilité de lancer l'application dans une version API inférieure ne connaissant pas cette fonction.

 

Il faudra impérativement controler ensuite la version Android utilisée lors de l'exécution avant de déclencher éventuellement l'appel à la fonction en cause, de la manière suivante:

Soit fonctionAPI() une fonction valable uniquement à partir de Build.VERSION_CODES.versionAndroid

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.versionAndroid) {

// Lancer une fonction pour les API < à versionAndroid, probablement deprecated ! Ou rien, ou une faite maison...

}

else

{

// fonctionAPI pour les versions >= versionAndroid

}

Image non trouvée !Cette annotation sera probablement utilisée de paire avec @SuppressWarnings("deprecation") pour permettre l'utilisation d'une ancienne fonction dépréciée suivant la version Android utilisée.