Versione breve: lavorare con C ++ su Android è possibile e più facile con ogni versione di Android SDK / NDK, ma è più difficile che lavorare con Java.
Versione lunga:
Per ogni versione, Google aggiunge più funzionalità ad Android Native Development Kit e lo rende sempre più indipendente dal codice Java.
Leggi http://developer.android.com/sdk/ndk/overview.html per maggiori dettagli:
Scrivere un'attività nativa, che consente di implementare i callback del ciclo di vita nel codice nativo. L'SDK di Android fornisce la classe NativeActivity, che è una classe di convenienza che notifica al codice nativo eventuali callback del ciclo di vita delle attività (onCreate (), onPause (), onResume (), ecc.). È possibile implementare i callback nel codice nativo per gestire questi eventi quando si verificano. Le applicazioni che utilizzano attività native devono essere eseguite su Android 2.3 (API Level 9) o successivo. Non è possibile accedere in modo nativo a funzioni come Servizi e Content Provider, quindi se si desidera utilizzarle o qualsiasi altra API del framework, è comunque possibile scrivere codice JNI per farlo.
Il problema è solo che se usi l'NDK più recente, non sarai in grado di distribuire e molte versioni Android non recenti.
Comunque, anche con le precedenti versioni NDK, puoi avere un codice Java minimo (per interagire con il sistema operativo) e il codice completo dell'applicazione in C ++ o qualsiasi altra cosa nativa.
Ci sono anche sforzi per aiutare gli sviluppatori nativi a lavorare pienamente in C o C ++ tramite plugin IDE come questo Vs-Android che è un plug-in per Visual Studio 201x che ti nasconde tutto il processo di compilazione e generazione: http://code.google.com / p / vs-android /
Inoltre, se prevedi di eseguire il porting della tua applicazione su un altro sistema operativo, è consigliabile utilizzare C ++ per il core dell'applicazione (magari con un linguaggio di scripting in alto). È solo più costoso in termini di tempo di sviluppo rispetto ad altre alternative - per motivi specifici di C ++ ed è disponibile l'implementazione di strumenti di sviluppo, ad esempio troppi tempi di compilazione possono compromettere la tua produttività effettiva.
Detto questo, non è il modo più semplice di lavorare su app mobili.