J'essaie de développer/porter un jeu sur Android, mais il est en C et Android prend en charge Java, mais je suis sûr qu'il doit y avoir un moyen d'obtenir une application en C là-bas, tout le monde le sait. un bon tutoriel sur le sujet?
Merci!
Si vous y accédez via Google, notez que, à partir du SDK 1.6, Android dispose désormais d'un SDK natif officiel.
Vous pouvez télécharger le Android NDK (Kit de développement natif) à partir d'ici: https://developer.Android.com/ndk/downloads/index.html
Il existe également un article de blog sur le NDK:
http://Android-developers.blogspot.com/2009/06/introducing-Android-15-ndk-release-1.html
Android NDK est un jeu d'outils qui vous permet d'implémenter des parties de votre application en code natif, à l'aide de langages tels que C et C++. Pour certains types d'applications, cela peut vous aider à réutiliser des bibliothèques de code écrites dans ces langues.
Pour plus d'informations sur la mise en route du développement natif, suivez ce lien .
Des exemples d'applications peuvent être trouvés ici .
Normalement, vous devez:
Si vous souhaitez vendre une application:
Google a publié un kit de développement natif (NDK) (selon http://www.youtube.com/watch?v=Z5whfaLH1-E à 00:07:30).
Espérons que les informations seront mises à jour sur la page des groupes de Google ( http://groups.google.com/group/Android-ndk ), car il est indiqué qu’elle n’a pas encore été publiée.
Je ne sais pas trop où obtenir un téléchargement simple, mais j'ai entendu dire que vous pouvez obtenir une copie du NDK à partir du référentiel Git de Google, situé sous la branche Donut.
La position officielle semble être que ce n'est pas quelque chose que vous "voudriez faire". Voir ce fil dans la liste des développeurs Android. Google envisage Android de s'exécuter sur différents appareils (processeurs, écrans, etc.). Le meilleur moyen de permettre le développement consiste donc à utiliser un code géré (portable) qui cible la machine virtuelle Dalvik. Pour cette raison, le SDK Android ne prend pas en charge le C/C++.
MAIS, jetez un oeil à cette page :
Android inclut un ensemble de bibliothèques C/C++ utilisées par divers composants du système Android. Ces fonctionnalités sont exposées aux développeurs via le cadre d’application Android.
L'infrastructure d'application gérée semble se superposer à ces bibliothèques. La page continue en énumérant les bibliothèques C/C++: bibliothèque C standard, média, 3D, SQL lite, etc.
Donc, tout ce dont vous avez besoin est d’une chaîne de compilation qui compilera C/C++ sur le processeur approprié (ARM, dans le cas du G1). Quelques brèves instructions sur la façon de procéder sont ici .
Ce que je ne sais pas, c'est où trouver les descriptions des API fournies par ces bibliothèques. J'imagine qu'il y a peut-être des fichiers d'en-tête enterrés dans le SDK quelque part, mais la documentation peut être incomplète/manquante. Mais je pense que cela peut être fait!
J'espère que c'est utile. Pour mémoire, je n'ai pas écrit d'applications Android natives - juste quelques applications simples gérées.
Andy
Google a déjà lancé Google I/O 2011: Apporter des jeux C et C++ à Android . Cette session est disponible sur http: // www. youtube.com/watch?v=5yorhsSPFG4
il est bon de comprendre l’utilisation de NDK pour écrire des applications en c et c ++ pour Android.
Si vous voulez simplement compiler n'importe quel jeu natif basé sur une console et les exécuter sur Android, alors cet article a montré 3 méthodes pour la même chose.
1: compilation statique à l'aide d'une chaîne d'outils autonome
2: Compilation croisée avec Android Chaîne d’outils de NDK
3: Compilation croisée à l'aide du code source AOSP
Vous pouvez utiliser nestedvm pour traduire le langage C (ou d’autres langages GCC) en bytecode Java, et l’utiliser comme base de votre port. Par exemple, voir le portage Android de la collection de casse-tête portables de Simon Tathams .
Je suppose que cette méthode est rendue obsolète par le NDK, mais elle pourrait ne pas l'être si certains réseaux ou quelque chose ne permet pas aux gens de mettre à niveau leurs téléphones.
En regardant cela, il semble que c'est possible:
"le fait est que seul le langage Java est pris en charge ne signifie pas que vous ne pouvez pas développer d'applications dans d'autres langages. Cela a été prouvé par de nombreux développeurs, pirates informatiques et experts en développement d'applications pour mobiles. Les gars de Elements Interactive BV, la société derrière la bibliothèque Edgelib, a réussi à exécuter des applications C++ natives sur la plate-forme Android, même s'il reste encore de nombreux problèmes d'affichage et de son… etc. Cela inclut le jeu S-Tris2 et une démo d'animation 3D d'Edgelib. "
Peut-être cherchez-vous cela?
C'est une couche intermédiaire à développer pour plusieurs plates-formes mobiles utilisant c ++.
Depuis 2009, il y a un développement sur ce sujet.
Necessitas - Qt (framework C++) pour Android
Pour commencer video .
Je ne suis pas sûr que le NDK fournisse une couverture complète de l'API officielle Java.
De http://developer.Android.com/sdk/ndk/index.html#overview :
Veuillez noter que le NDK ne vous permet pas de développer des applications exclusivement natives. Le moteur principal d'Android reste la machine virtuelle Dalvik.
Jetez un coup d'œil à groupe Google ndk cela semble prometteur, la première version du NDK sera disponible dans le premier semestre de 2009.
Mise à jour: Et il est publié http://Android-developers.blogspot.com/2009/06/introducing-Android-15-ndk-release-1.html
Google vient de publier le NDK qui permet exactement cela.
Vous pouvez le trouver ici: http://developer.Android.com/sdk/ndk/1.5_r1/index.html
Vous pouvez télécharger c4droid puis installer le plugin GCC et l'installer sur votre SD. Depuis le shell, je traverse le répertoire où se trouve le binaire GCC, puis l’appelle pour créer un exécutable intégré.
/mnt/sdcard/Android/data/com.n0n3m4.droidc/files/gcc/bin/arm-linux-androideabi-gcc
#include<stdio.h>
int main(){
printf("hello arm!\n");
return 0;
}
salut bras!
Cet article de blog peut être un bon début: http://benno.id.au/blog/2007/11/13/Android-native-apps Malheureusement, beaucoup d'éléments importants sont "laissés en tant que un exercice au lecteur ".
Les fichiers C/c ++ natifs libstdc ++. * De votre Ubuntu sont des binaires x86 (ou x86_64), mais Android et des émulateurs sont au format ARM. Bien sûr, cela ne fonctionnera pas de toute façon, même si vous définissez son nom correct. C'est un moyen très naïf qui ne mène nulle part. Android ne prend en charge que très peu le langage C++, ce qui signifie qu'il n'y a pas d'exception, la bibliothèque C++ standard (y compris STL) et RTTI. Si vous avez besoin de telles fonctionnalités, utilisez ma distribution NDK personnalisée de
http://crystax.net/Android/ndk.php - Il prend en charge toutes les fonctionnalités C++ énumérées ci-dessus.
Pourquoi y a-t-il erreur: référence non définie à l'erreur de lien '__cxa_end_cleanup'. Android stlport
temps. Parce qu'il n'y a pas de lien vers libstdc + +. R. Si mal.
Comme il utilise une bibliothèque statique, il est nécessaire de lier l'intégrale libstdc + +. Une canette
http://crystax.net/Android/ndk.php ici pour télécharger le package
sources\cxx-stl\gnu-libstdc + +\libs\armeabi.
Android sur son propre support libstdc + + est limité, il doit être lié à un libstdc + + complet. Un travail.
Ajouter un fichier dans Android.mk LOCAL_LDFLAGS = $ (LOCAL_PATH) / libs / libcurl.a \
$ (LOCAL_PATH) / libs / liblua.a \
`$ (LOCAL_PATH) / libs / libstdc + +. A`
Et LOCAL_CPPFLAGS + =-lstdc + +-fexceptions
peut être compilé
Ces trois étapes sont bonnes à avoir et à stocker dans ce post.
1) Comment porter du code c natif sur Android
3) http://mindtherobot.com/blog/452/Android-beginners-ndk-setup-step-by-step/
Je ne connais pas de tutoriel, mais un bon outil de développement: le SDK Airplay d’Ideaworks Labs. (Récemment renommé " Marmelade ") En C/C++, vous pouvez créer des applications pour Windows Mobile, iPhone, Android. Le seul composant que je n’ai pas aimé est l’interface graphique composer, qui est un buggy, mais vous pouvez toujours le remplacer par le Bloc-notes.
Il est prévu d'autoriser les bibliothèques C/C++ dans la prochaine version de SDK de Android (nom de code Eclair?). À ce jour, il n'est pas possible d'utiliser le Android Java. SDK. Cependant, vous pouvez récupérer le projet Open Source ÉNORME, lancer vos propres bibliothèques, puis flasher votre propre appareil ... mais toute personne souhaitant utiliser votre bibliothèque devra également flasher votre version personnalisée.