Développer pour Android sans Java bientôt possible
En C++ grâce à la 5ème révision du Native Development Kit
Le 2011-01-18 12:36:40, par Idelways, Expert éminent sénior
Développer des applications pour Android 3 (ou ultérieur), entièrement en C++, sans la moindre ligne de Java sera bientôt possible d'après un billet publié sur le blog officiel des développeurs Android par Chris Pruett.
Une nouvelle qui devrait surtout intéresser les développeurs de jeux vidéo 3D, un domaine où les applications Java affichent parfois des limites en terme de performances.
Cette nouvelle devrait aussi ravir les développeurs C/C++ et ceux qui ne s'inquiète de l'avenir de Java suite à son passage sous l'égide d'Oracle, à l'origine d'une action en justice toujours en cours, contestant l'utilisation de Java sur Android.
Utiliser des librairies natives en C/C++ à partir d'applications écrites en Java pour Android était déjà possible grâce au Native Development Kit (NDK) disponible dans sa première version depuis juillet 2009.
Depuis cette version, l'équipe du projet a intégré dans plusieurs révisions des fonctionnalités clés à son Kit de développement : le support de OpenGL ES, le débogage, le support de multiples ABI (interface binaire-programme) et l'accès aux bitmaps à partir du code natif.
Dans la cinquième et prochaine révision (NDK r5), Google introduira des APIs qui permettront aux développeurs de s'affranchir entièrement de l'utilisation de Java : "Avec ces outils, les applications visant Android Gingerbread ou ultérieure pourront être implémentées entièrement en C++" déclare Chris Pruett.
"Vous pouvez maintenant écrire des applications pour Android sans avoir à écrire la moindre ligne de Java" insiste Pruett.
Cependant, les applications développées de la sorte dépendront toujours de Dalvik (la machine virtuelle Java de Google) notamment pour les appels à l'API d'Android.
Source : le blog de Android Developer
Et vous ?
Que pensez-vous de cette nouvelle ? S'agit-il d'un début de réponse à Oracle ?
Allez-vous développer en C++ pour Android ?
Une nouvelle qui devrait surtout intéresser les développeurs de jeux vidéo 3D, un domaine où les applications Java affichent parfois des limites en terme de performances.
Cette nouvelle devrait aussi ravir les développeurs C/C++ et ceux qui ne s'inquiète de l'avenir de Java suite à son passage sous l'égide d'Oracle, à l'origine d'une action en justice toujours en cours, contestant l'utilisation de Java sur Android.
Utiliser des librairies natives en C/C++ à partir d'applications écrites en Java pour Android était déjà possible grâce au Native Development Kit (NDK) disponible dans sa première version depuis juillet 2009.
Depuis cette version, l'équipe du projet a intégré dans plusieurs révisions des fonctionnalités clés à son Kit de développement : le support de OpenGL ES, le débogage, le support de multiples ABI (interface binaire-programme) et l'accès aux bitmaps à partir du code natif.
Dans la cinquième et prochaine révision (NDK r5), Google introduira des APIs qui permettront aux développeurs de s'affranchir entièrement de l'utilisation de Java : "Avec ces outils, les applications visant Android Gingerbread ou ultérieure pourront être implémentées entièrement en C++" déclare Chris Pruett.
"Vous pouvez maintenant écrire des applications pour Android sans avoir à écrire la moindre ligne de Java" insiste Pruett.
Cependant, les applications développées de la sorte dépendront toujours de Dalvik (la machine virtuelle Java de Google) notamment pour les appels à l'API d'Android.
Source : le blog de Android Developer
Et vous ?
-
PriatoMembre habituéPour moi, le problème avec Java c'est plutôt sa machine virtuelle(ici Dalvik) qu'il faut qu'il y ait derrière. Je code bien plus vite en Java qu'en C++, par contre niveau performance dans l'exécution, c'est pas trop comparable(avec OpenGL par exemple).
Le fait de passer par Dalvik, supprime, selon moi tous les avantages de passer en C++.
Je pense donc continuer à développer en Java sur cette plateforme...
Si par contre à terme, Dalvik venait à être supprimé (pour l'exécution de code C++), et que j'ai des applications lourdes à développer, je reviendrai à mon bon vieux C++.
@gros_rougeot: Tu trouves qu'il faut plus de lignes de code en Java pour faire la même chose qu'en C++? C'est pas plutôt l'inverse? (sans parler d'héritage multiple bien sur...)le 18/01/2011 à 14:40 -
ratommsMembre actifDévelopper en C++ pourrait améliorer la performance des applications qui tournent sous Android
. Mais du point de vue préférence,j'adore JAVA. le 18/01/2011 à 14:53 -
air-dexMembre expertBonne nouvelle. Se passer de Dalvik (à terme) ne peut être que bénéfique pour Android dont on pourrait tirer plus de puissance.le 18/01/2011 à 12:52
-
Paul TOTHExpert éminent séniorCeci dit, on retombe sur les problèmes de compatibilité hardware, vu que tous les processeurs sous Android ne sont pas identiquesle 18/01/2011 à 15:35
-
abriotdeMembre chevronnéPour un compromis entre le C++ et le java, rapport performance, efficacité, simplicité de développement, personnellement je préfère le langage Go de Google. Compilé, mais avec un garbage collector... c'est fort.le 18/01/2011 à 19:12
-
gorgoniteRédacteur/Modérateurpas forcement... il ne faut pas oublier qu'un code POSIX sera sûrement "portable source", et si google propose une belle chaîne de cross-compilation, il sera possible de compiler vers toutes les plateformes supportées
clairement avec C++ le niveau exigé pour concevoir et réaliser de "bonnes applis" pourrait augmenter...
il ne faut pas oublier le nombre de développeurs réussissant l'exploit d'avoir des codes plus lourds et plus lents en C++ qu'en Java...
et c'est sans parler de tous les plantages envisageables, comme signalé par ZeRevo
après clairement, dans un monde idéal, les applis seront sûrement mieux optimisés, mais éventuellement avec un système de package plus complexe pour gérer à la fois les versions et les plate-formes supportéesle 28/02/2011 à 17:27 -
NekoMembre chevronnéJe comprends pas bien pourquoi les appels aux API dépendent toujours de Dalvikle 18/01/2011 à 12:53
-
GuildemMembre habituéTe plain pas gros_rougeot, ils auraient pu faire leurs api en flash et intégrer la vm d'adobe
Très bonne chose de pouvoir bientôt développer en c++ directement, toute la puissance d'Android et surtout des smartphones/tablettes enfin disponible en totalité !le 18/01/2011 à 13:53 -
j'espere surtout que cette fois ci il y aura la STL! elle n'était pas supportée dans le NDK r4le 18/01/2011 à 18:48
-
lequebecois79Membre éclairétu peux déjà avoir un GC avec le C++
ça va créer que plus de problème actuellement étant donné la variété de cpu qui font tourner android
Google n'a qu'à optimiser sa vm... voir droidboosterle 18/01/2011 à 19:21