Aggiornato (per chiarezza e per ridurre l'ambiguità):
Inizierò ad armeggiare con le app Android. Avevo intenzione di scrivere in C ++ usando NDK (dato che ho più esperienza in C ++ e lo preferisco a Java) ma ho trovato quanto segue sulla pagina Android NDK :
dovresti usare NDK solo se è essenziale per la tua app, mai perché preferisci semplicemente programmare in C / C ++.
Ho avuto l'impressione che dovresti usare la lingua che preferisci, purché si adatti al lavoro. Qualcuno potrebbe spiegare perché è così fortemente consigliato di non usare C / C ++ per lo sviluppo Android?
Originale:
Inizierò ad armeggiare con le app mobili, in particolare Android, che è il sistema operativo del mio telefono attuale, e mi chiedevo se scrivere l'app in C ++ (o almeno il core, quindi avvolgere in Java) fosse un'opzione accettabile.
Qualche background, sono un laureato in informatica che ha seguito 3 corsi C ++ (intro, intermedio, OOP e sto frequentando un corso STL in primavera) e solo 1 corso Java (intermedio). Per questo motivo, sono più a mio agio con C ++ e lo preferisco a Java. Mi sono imbattuto in quanto segue nella pagina Android NDK :
L'utilizzo del codice nativo su Android in genere non comporta un notevole miglioramento delle prestazioni, ma aumenta sempre la complessità dell'app. In generale, dovresti usare NDK solo se è essenziale per la tua app, mai perché preferisci semplicemente programmare in C / C ++.
- Avevo l'impressione che dovessi usare il linguaggio più adatto al lavoro e quello che conosci
- Potrei voler portare l'applicazione su un'altra piattaforma mobile, come iOS, che supporta C ++ ma non java
- Sebbene Java sia un linguaggio di alto livello e quindi dovrebbe rendere lo sviluppo più veloce, sento che lo sviluppo sarebbe più lento perché dovrei imparare di nuovo quasi tutto (dato che ho seguito solo una lezione sulla lingua)
Qualsiasi consiglio sarebbe molto apprezzato.
ps: molte delle risposte su questo argomento sono di anni fa e ci sono pochissime risposte successive che menzionano l'NDK che consente lo sviluppo di app native complete su Android 2.3 e versioni successive.