2013-03-06 15 views
9

Sto per iniziare a creare un'app per Android (sto attualmente lavorando al servizio Web e al database) e vorrei sapere se c'è una differenza significativa nella velocità dell'app tra l'utilizzo di Java o la codifica direttamente in C o C++.Costruzione di un'app per Android veloce - Java o nativa?

L'app non contiene grafica o fisica complessa e la sua velocità dipende principalmente dalla velocità di trasferimento di diversi oggetti da e verso un servizio Web REST.

Grazie in anticipo

+5

Consiglierei di farlo in Java, così come Google. L'unico scopo di NDK è rendere il porting di basi di codici preesistenti molto più semplice. –

+4

"la sua velocità dipende principalmente dalla velocità di trasferimento di diversi oggetti da e verso un servizio web REST" - la "velocità di trasferimento" è regolata dalla connessione Internet e ha poco o nulla a che fare con la velocità del linguaggio di programmazione. – CommonsWare

+0

Usa Java fino a quando non è necessario associare una lib nativa o la profilazione mostra un punto caldo in cui il vantaggio della velocità modesta del codice nativo farà davvero la differenza. È molto più difficile rendere il codice nativo robusto e corretto rispetto a Java e quindi ancora più difficile da mantenere. – Gene

risposta

18

Google says probabilmente dovrebbe solo bastone con Java:

Prima di scaricare il NDK, si dovrebbe capire che l'NDK non beneficerà la maggior parte delle applicazioni. Come sviluppatore, devi bilanciare i suoi benefici con i suoi svantaggi. In particolare, l'utilizzo del codice nativo su Android in genere non si traduce in un notevole miglioramento delle prestazioni, ma aumenta sempre la complessità dell'app. In generale, devi utilizzare NDK solo se è essenziale per la tua app, mai perché preferisci semplicemente programmare in C/C++.

Tipici buoni candidati per l'NDK sono operazioni self-contained e ad alta intensità di CPU che non allocano molta memoria, come elaborazione del segnale, simulazione fisica e così via. Quando esamini se devi sviluppare o meno in codice nativo, pensa ai tuoi requisiti e verifica se le API della struttura Android forniscono le funzionalità di cui hai bisogno.

3

Non consiglierei di utilizzare NDK, poiché hai menzionato che lo stai creando da zero per Android. Google dice specificamente here che non dovresti utilizzare NDK per i motivi sopra menzionati.

0

Ti consiglio di utilizzare Java e utilizzare i servizi web REST con Spring per Android. È troppo facile consumarli. Al momento ho un'app pubblicata su Android Play Store e il codice sorgente è in GitHub, qui puoi dare un'occhiata.

Buona fortuna!

Problemi correlati