2010-02-20 9 views
24

Mi interessa le seguenti caratteristiche:Posso creare un'app C++ piuttosto nativa con Android?

  1. Scrivere un'applicazione per Android Market che è scritto interamente in C++ (un porto di prodotto esistente in realtà).
  2. Utilizzare la pressione del pixel dello screen buffer veloce (o piuttosto usando OpenGL ES per questo).
  3. Immettete l'input dell'utente e indirizzatelo al codice C++.

È legale scrivere una tale app per Market? La politica di mercato è in qualche modo rigorosa per queste cose?

risposta

0

http://developer.android.com/guide/basics/what-is-android.html

"L'SDK di Android fornisce gli strumenti e le API necessarie per iniziare a sviluppare applicazioni per la piattaforma Android utilizzando il linguaggio di programmazione Java."

http://arstechnica.com/open-source/news/2009/06/android-goes-beyond-java-gains-native-cc-dev-kit.ars

In generale, non è necessario. Esiste un limitato supporto C++ tramite JNI, ma è principalmente inteso a integrare il codice Java, non a sostituirlo. Non esiste alcun supporto framework/API (AFAIK) per C++, quindi fare ciò non è davvero un'opzione.

+0

I credo che almeno le API OpenGL siano esposte direttamente a livello NDK, quindi ad es. per i giochi a schermo intero nativo completo è sicuramente un'opzione (e probabilmente raccomandata). –

8

Non è davvero la mia tazza di tè, ma c'è qualcosa chiamato Android NDK (Native Development Kit) da utilizzare se si desidera scrivere il programma in C. Non sono sicuro di come sia il supporto del compilatore C++.

Per quanto ne so la tua app può essere quasi al 100% nativa, ma tieni a mente che camminando in quel modo probabilmente avrai difficoltà a supportare le diverse CPU là fuori nell'hardware Android. Se è necessario eseguire il bootstrap del codice nativo in modo che sia avviato da java, probabilmente non è un grosso problema per te.

Ho trovato alcuni tutorial diversi durante la ricerca su google "NDK Android". This one is a very minimalistic Hello World. Ovviamente vuoi qualcosa di molto più di una libreria che restituisce una stringa a java ma è un buon primo avvio e probabilmente dovrai fare tutte le cose descritte. Effettua una ricerca utilizzando NDK e Android come parole chiave e ottieni una buona selezione. Non vedo alcun motivo per elencarli qui in quanto tali elenchi tendono ad essere obsoleti e rotti entro un anno circa.

Immagino che l'ufficiale Android Developer site di Google rimarrà inserito e verrà aggiornato sulle nuove versioni della piattaforma, con un collegamento al NDK corrente.

+0

Perché il downvote? – Fredrik

+0

Se dovessi indovinare, è perché hai suggerito Gooling per una stringa piuttosto che fornire un collegamento diretto al progetto. A volte le persone vogliono essere schizzinosi. +1 per il link che hai fornito, però. È piuttosto la procedura completa per impostare un ambiente di sviluppo, non solo un breve pezzetto di codice. –

+0

Tranne che il collegamento non è per NDK AFAICT. È per scrivere app per console, utilizzando il cross-compiler che fa parte del progetto open source Android. Il termine "NDK" non viene nemmeno visualizzato nella pagina e il post è stato scritto prima della pubblicazione dell'NDK. – CommonsWare

1

Non esiste una soluzione nativa al 100%, ma quello che penso che stai cercando è la Android NDK (Native Development Kit)

Dal loro sito "Si prega di notare che l'NDK non consente di sviluppare native-solo le applicazioni Il runtime primario di Android rimane la macchina virtuale Dalvik. "

Credo che consente di effettuare chiamate verso il proprio codice nativo da un'applicazione Android

Personalmente ho mai usato per i miei giochi, ma sono sicuro che avrebbe aiutato su un sacco di cose (come essere in grado per gestire la mia memoria e non avere "lag" fare al garbage collector)

15

A partire da NDK r5 con Android 2.3 (Gingerbread) questo è possibile, anche se presumo che solo i dispositivi per supportare le app native debbano avere Gingerbread su di essi.

Dal campione nativo-attività:

L'Android SDK fornisce una classe di supporto, NativeActivity, che permette di scrivere un'attività completamente nativo. Con un'attività nativa, è possibile scrivere un'applicazione completamente nativa. NativeActivity gestisce la comunicazione tra il framework Android e il tuo codice nativo , quindi non devi eseguirne la sottoclasse o chiamarne i metodi. Tutto quello che devi fare è dichiarare l'applicazione nativa nel tuo file AndroidManifest.xml e iniziare a creare l'applicazione nativa .

+1

facci un esempio. Vedere per credere :) –

+3

@Deo Esempi di controllo/attività nativa/nel NDK. – tonylo

2

Con Gingerbread (Android 2.3) sembra che tu possa costruire l'intera app in C++.

CF:. http://phandroid.com/2011/01/11/android-developers-blog-awesome-ndk-leads-to-awesome-apps/

" Con l'ultima versione della NDK, R5, molte grandi miglioramenti sono stati fatti coincidere con il rilascio di Gingerbread La più importante è la capacità di codificare un'applicazione nativa per Android 2.3 interamente in C++. Ciò significa che anche programmatori e sviluppatori senza conoscenza di Java non dovranno implementare una singola riga di quel codice ... "

Non posso garantire la veridicità di questo blogger, tuttavia, da quello che ho letto, sembra che tu possa farlo

Problemi correlati