È importante conoscere lo sviluppo di C / C ++ per Android?

8

È possibile utilizzare solo Java (senza C ++ / NDK) per creare app Android buone, veloci e belle (incluso lo sviluppo 3D)?

Quando cerco requisiti di posizione degli sviluppatori Android (posti vacanti), vedo che la conoscenza di C / C ++ / NDK è molto importante. Alcune aziende richiedono persino di costruire le loro attività di test usando solo C ++ (OpenGL).

    
posta MyTitle 02.11.2012 - 12:05
fonte

4 risposte

6

Nella maggior parte dei casi non è necessario sviluppare c / c ++ per Android.

Secondo Panoramica NDK di Android

II. Android NDK Non-Goals:

The NDK is not a good way to write generic native code that runs on Android devices. In particular, your applications should still be written in the Java programming language, handle Android system events appropriately to avoid the "Application Not Responding" dialog or deal with the Android application life-cycle.

tuttavia c / c ++ è importante se si desidera utilizzare le librerie c / c ++ esistenti.

Esempio: Android non ha un codificatore mp3 incorporato ma puoi usare libreria lame opensource .

Lo stesso potrebbe valere per il image-image 3d

    
risposta data 02.11.2012 - 13:02
fonte
3

Ci sono molte applicazioni in Java. Lo sviluppo in Java è più veloce e oggigiorno i dispositivi sono così potenti che l'efficienza non conta quando l'applicazione è principalmente un'interfaccia utente interessante per alcuni dati estratti dalla rete. Quale è la maggior parte delle applicazioni là fuori. Quindi puoi certamente ottenere un lavoro nello sviluppo di applicazioni Android anche senza la conoscenza del C ++.

Ci sono comunque molti buoni motivi per scegliere il C ++ per applicazioni più complesse:

  1. Fino ad oggi il C ++ è ancora l'unico linguaggio portatile per tutte le piattaforme. Alcune piattaforme mobili hanno Java, altre hanno CLI / CLR (.NET), ma nessuna delle due è disponibile su tutte. Scrivere un'applicazione portatile in C ++ è molto lavoro, ma è fattibile e comprovato da molti esempi.
  2. Java ha un'inefficienza della memoria integrata nel linguaggio. Se si osservano vari confronti, un'attività simile richiede in genere una memoria 3-10 volte superiore a Java rispetto a C ++. Quindi, se stai facendo qualcosa che ha bisogno di molti dati in memoria, Java non sarebbe una buona scelta (nota che la situazione è molto migliore con CLI / CLR).
  3. Dalvik, la JVM su Android, è un po 'indietro rispetto alle migliori JVM come HotSpot. Quindi, se stai facendo qualcosa che ha davvero bisogno di potenza di calcolo, Java non è una buona scelta su Android. Esistono tuttavia pochissime applicazioni che necessitano effettivamente di molta energia. La maggior parte delle applicazioni si limita a sedersi e a giocherellare con il pollice 99% di tempo in attesa che l'utente faccia clic su qualcosa e per quel tipo di applicazioni Java va bene (per la maggior parte anche Python andrebbe bene).

Penso che il primo motivo sia di gran lunga il più importante.

    
risposta data 02.11.2012 - 15:14
fonte
2

Dipende da come "native" sono previste le tue app. Sembra che per ora molte app debbano essere native per dare la piena Ux / UI richiesta dagli utenti finali. Sarà l'HTML5 e amp; L'astrazione dell'API basata su Java è diventata abbastanza buona da non aver bisogno di andare avanti? Chi lo sa: -)

    
risposta data 02.11.2012 - 12:14
fonte
1

Funziona perfettamente quando si modifica per il codice C / C ++, ma quando il codice java viene modificato non lo ricostruisce automaticamente. Le modifiche Java non vengono inviate all'emulatore o al dispositivo.

    
risposta data 03.11.2012 - 06:20
fonte

Leggi altre domande sui tag