Bonjour,

Je suis débutant. J'aimerais adjoindre à une de mes applications des modules supplémentaires à destination des téléphones mobiles, pour l'agrément des utilisateurs.
Mais par principe, ces utilisateurs, je ne sais pas à l'avance quel téléphone ils emploieront. J'aimerais faire au mieux pour les servir.

À cette fin, combien de versions distinctes de mon application mobile vais-je devoir écrire?

1) Je sais qu'il existe en concurrence J2ME et Android.
Une application Android ne fonctionnera sans doute pas sur un OS Windows CE, mais une application J2ME tournera t-elle sous Android?

2) Pour Android, je sais que pour la version 2, il existe des niveaux de SDK différents.
Puis-je cependant écrire un unique programme qui teste le niveau de SDK du téléphone de l'utilisateur, pour n'exécuter dynamiquement que ce qu'il sera en mesure de prendre en charge?

C'est à dire: est-ce que je vais pouvoir écrire quelque-chose comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if (os.getSDKLevel() >= 5)
   x.jolieFonctionNouvelle();
else
   x.ancienneFonctionMoinsBien();
Et Android, chargeant ce code, ne tentera pas de charger la fonction jolieFonctionNouvelle() avant qu'il lui ait été explicitement demandé de le faire? S'il fonctionne comme je le désire, l'utilisateur d'un téléphone en SDK 4 passe sans problèmes.
Sinon, il me faudra faire: une version Android SDK 1, une autre SDK 2, une autre SDK 3 ... jusqu'à 8, distinctes et packagées chacune à part?

3) Même question pour Java ME.
Je crois qu'il se doit de détecter la version MIDL que soutient le téléphone mobile cible, ainsi que les JSR qu'il supporte. Là encore, puis-je programmer une seule application Java, faisant des ifs pour passer au dessus de ce que le mobile exécutant ne peut réaliser, ou dois-je packager une application distincte pour chaque cas de figure?
- le mobile qui aurait MIDL 2.1 et CDLC 1.1 mais pas la JSR184,
- celui qui aurait MIDL 2.0 et la JSR75
- celui qui...

4) Quel sont les versions en dessous desquelles vous ne descendez-plus, parce que vous vous dites: désormais, il n'existe plus de téléphones de ce type, ou trop peu pour que cela vaille la peine de les cibler?
- La version Android 1 doit-elle être encore programmée de nos jours?
- En Java ME, je peux raisonnablement m'attendre à des téléphones en MIDL 1.0 ou non, aucun risque?

Et s'ils viennent les uns ou les autres, anciens mobiles, ce serait encore de nouvelles version d'applications mobiles Java que je devrait faire ou bien je pourrais les prendre en charge dans une application employant du code plus récent et qui fera donc, des ifs sur l'OS et ses capacités soutenues?

5) Peut-on, par extension se construire avec le temps des bibliothèques passe-partout, pour ne plus se soucier des joies et des peines de l'API 77 variante 12 prise en charge sur des mobiles aux capacités elles-mêmes variées?


En vous remerciant,

Grunt.