2013-03-15 10 views
6

Ho sentito che se sviluppo Android Game senza utilizzare NDK, le prestazioni sono significativamente inferiori. È questa la verità?NDK è necessario per ottenere buone prestazioni nello sviluppo di un gioco Android?

+0

Uno sviluppatore Android [post di blog] (http://android-developers.blogspot.co.uk/2010/06/game-development-for-android-quick.html) dal 2010 fornisce [Isola di replica] (http : //replicaisland.net/) come esempio di un gioco java ben scritto. – Chilledrat

risposta

14

vedo 3 motivi principali per utilizzare NDK:

  • si vuole riutilizzare C/C++ codice di base (ad esempio, motore di gioco scritto in C++, giochi multipiattaforma)
  • ottenere più memoria (si può usare molto più memoria tramite NDK)
  • il gioco richiede molta CPU e serve tutta la potenza del dispositivo.

In tutti gli altri casi è possibile scegliere quello che più ti piace. SDK/Java ti consente di usare OpenGL allo stesso modo di NDK, quindi la tua grafica non rallenterà. Devi stare attento con GC per ottenere un gameplay fluido. Se il tuo gioco richiede molta CPU, puoi scrivere alcuni metodi in C++ e chiamarli tramite JNI. A proposito, Dalvik ha JIT in modo che il codice Java possa essere altrettanto veloce (anche più veloce a volte) come codice C.

+0

Grazie per la risposta! – user1788012

1

No non avete bisogno di utilizzare il NDK a meno che non si vuole fare un super-realistico gioco 3D come Real Racing 3 se si tratta di un gioco con una grafica semplice e non molto tempo roba critica Java è ok

7

No, questo semplicemente non è vero.

Dipende molto da cosa sta facendo il tuo gioco particolare. La domanda essenziale è: il tuo gioco sarà a carico della CPU (o richiederà grandi quantità di memoria).

  • In caso contrario, attenersi all'SDK.
  • Se non lo sai, perché non hai ancora scritto molti giochi in passato, devi assolutamente attenersi all'SDK.
  • Anche se si rivelano parti del gioco che potrebbero fare con la potenza di elaborazione aggiuntiva, è sempre possibile estrarre tali parti in codice nativo durante lo sviluppo, se necessario.

Uno dei motivi per scegliere NDK su SDK è avere uno sfondo enorme in C++, che potrebbe renderti più produttivo in quell'ambiente. Tuttavia, dato lo stato attuale dei set di strumenti (comodo debugging, tempi di compilazione, facile accesso alle librerie SDK, ecc.), Questo è raramente efficace.

+0

Ironia della sorte c'è un'altra ragione per attenersi all'NDK: codice portatile su piattaforme. Tuttavia, anche questo può essere ottenuto (in qualche modo) da HTML5 e Javascript. –

Problemi correlati