Ce qui est moins connu & visible au niveau des docs, c'est que depuis la version l'API 9 (attention à ne pas confondre ndk-r8 et le niveau de l'API, il n'y a pas de lien), il est possible de faire une application 100% native donc sans code Java.
Cela implique que votre application ne pourra tourner que sur Android 2.3 minimum.
Maintenant, comment faire... Il y a beaucoup à dire, je vais ici seulement donner des pistes et je complèterais si quelqu'un me demande de développer une partie.
La première chose à faire est bien sur d'installer un environnement de développement pour Android :
http://developer.android.com/sdk/installing.html
Je vous conseille de prendre Eclipse Classic & C/C++ (que vous pouvez mettre dans le même dossier).
Une fois que vous avez tout installer en suivant les étapes, faite une "Hello World" en Java pour être sur que l'émulateur fonctionne par exemple.
Deuxième étape, il faut installer le NDK : http://developer.android.com/sdk/ndk/index.html
Maintenant, pour faire une application 100% native, il vous faudra faire une fichier de type Makefile pour compiler votre code C/C++.
Vous trouverez des exemples dans le dossier samples du NDK (http://developer.android.com/sdk/ndk/overview.html#samples) et de la doc dans docs/ANDROID-MK.html.
Dans vos fichiers à compiler, il faudra ajouter ce qui se trouve dans "sources\android\native_app_glue".
Vous aurez plus d'info aussi dans docs/NATIVE-ACTIVITY.HTML
Ne mettez pas de main() dans votre code d'origine, mais un android_main(struct android_app* state).
Vous avez aussi un exemple dans samples\native-plasma\jni\plasma.c
Il vous faudra aussi un fichier default.properties (voir dans samples\native-plasma\) pour mettre au compilateur natif de savoir l'API à utiliser.
Avec tout cela, vous devez être capable de générer une librairie libVotreProjet.so
Maintenant comment lancer cela ? Il vous faut un projet Eclipse de type Android mais vide (sans classe java). Dans votre projet, vous devez ajouter :
un dossier libs avec votre fichier libxxx.so
Par exemple
libs/armeabi/libxxxx.so
Un fichier AndroidManifest.xml avec les autorisations dont vous avez besoin, mais avec :
<uses-sdk android:minSdkVersion="9" />
<application android:label="@string/app_name"
android:hasCode="false" android:debuggable="true">
<activity android:name="android.app.NativeActivity"
android:label="@string/app_name">
<meta-data android:name="android.app.lib_name"
android:value="native-plasma" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Avec cela, vous devriez pouvoir lancer votre application 100% C / C++ sur l'émulateur (et sur un vrai appareil Android).
Je ferais un autre article sur la lecture de fichiers de données que l'on peut aussi faire intégralement en C / C++.