Après maintes recherches sur Internet mais en vain, je viens poster ici pour savoir comment programmer en C++ pour Androïd ?
Y a-t-il un IDE efficace pour parvenir à cela ? ( j'ai entendu parler de NDK mais apparemment ce ne sont que des bouts de code et non des applications entières que l'on peut programmer)
Du moment que l'IDE te permet de configurer le compilateur et les commande a utiliser, n'importe lequel fera l'affaire.
-j'ai entendu parler de NDK mais apparemment ce ne sont que des bouts de code et non des applications entières que l'on peut programmer
Télécharge le NDK, tout est y très bien documenté avec des exemples commentés. Si tu veux faire une application "100% native" tu peux jeter un coup d’œil sur l'exemple "native-activity".
Les inconvénients du NDK :
-Tu n'a pas accès au fonction du SDK. (A vrai dire c'est faux, tu peux. Mais à ce moment la autant faire du java)
-La seul manière d'afficher quelque chose à l'écran est d'utiliser Opengl ES.
-Une application "native" n'a pas forcement de meilleurs performances qu'une même application codée en java.
-S'habituer à consulter des sites en anglais comme http://stackoverflow.com , afin de résoudre ses problèmes.
Avantages :
-Très pratique si tu souhaite porter un jeu utilisant Opengl vers la plateforme Android.
-Il me semble que SDL 2.0 est compatible Android. Un portage non officiel de SFML existe également.
Je ne serais te conseiller, car cela dépend de tes intentions. Si c'est juste pour concevoir un jeu à partir de zéro,
mieux vaux utiliser Java avec des moteurs tels que libGDX, Andengine qui sont très complets.
Si c'est dans le but de porter un jeu déjà fait et basé sur du Opengl, ou tout simplement d'approfondir tes compétences, le ndk peut être une bonne solution.
Merci beaucoup de ton aide cependant, comme tu as pu le deviner vers la fin, la création de jeux vidéo n'est peut-être pas mon but et en effet, tu as raison de le penser car ce que je veux programmer c'est une application comme celles que tu peux programmer avec Qt ( avec des boutons, champs de saisie, barre de scroll ...), des applications qui te permettent d'écrire et de lire dans un fichier ...
Par contre j'ai aussi une petite question, quand tu parle de "100% natif", que veux dire natif ? Parcequ'il y a quelques temps en ouvrant une invite de commande de visual studio, il me proposait 3 type de console dont la "native" donc si tu pourrais m'expliquer ce que c'est, ce serait vraiment gentil de ta part.
En général on associe le terme "natif" au C/C++ (pour des applications Android). Le principe du NDK est de compiler du code C++ sous le format d'une librairie *.so puis d'appeler cette librairie sous ton code java, et enfin appeler les fonctions que tu a fait en c++ depuis le code Java. Comme ceci : (ici on va nommer le package com.smart.ties
Partie Java
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState)
{
//on importe la librairie
System.loadLibrary("malibrairie");
}
}
public class GLView extends GLSurfaceView implements Renderer
{
//cette fonction est appelé 60 fois par seconde
void onDrawFrame(GL10 gl) {
// On appel le code C++ depuis le code java
nativeAffichage();
}
private static native void nativeAffichage();
}
Partie C/C++
extern "C"
{
JNIEXPORT void JNICALL Java_com_smart_ties_nativeAffichage( JNIEnv* env);
}
void afficher_carrer(int x, int y, int w, int h)
{
...
}
JNIEXPORT void JNICALL Java_com_smart_ties_nativeAffichage( JNIEnv* env)
{
// ici on affiche tout ce que l'on veux
afficher_carrer(0, 0, 10, 10);
afficher_carrer(50 , 0 10, 10);
}
Hors l'exemple native-activity intégre le module android_native_app_glue, qui est un projet squelette avec toutes les fonctions Java déjà préparées. Ce qui te permet de faire application "100% native" seulement en c++ puisque la partie Java est déjà faites. Si j'utilise des guillemets c'est parce que ton application contient en réalité quelques lignes de java.
désolé de relancer le topic après aussi longtemps, mais est ce que c'est possible de lancer une fonction en c++ dans un script java android en lui passant des paramètres et en récupérant le résultat de cette fonction?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Discord NaN. Mon site.