hackersitiz (Normal User)
Pro
Messaggi: 120
Iscritto: 29/09/2010
|
Dal titolo avrete capito...
Vorrei sviluppare un'applicazione per Android, ma è possibile in C?
Da quel che ho letto con SDK lo è...
Come senza un cellulare con Android?
Ecco c'è un emulatore, ma quale??
Ho trovato un bel libro che sembra molto interessante e spiega il sistema operativo Android e come sviluppare applicazioni... il libro è http://www.apogeonline.com/libri/9788850329212/scheda.
Up pareri!!!
Ultima modifica effettuata da hackersitiz il 13/11/2010 alle 17:18 |
|
nihal (Ex-Member)
Pro
Messaggi: 109
Iscritto: 12/04/2010
|
Il libro non lo conosco, ma ti posso assicurare che non si può eseguire codice nativo su Android. Tutto il software Android è scritto in Java e gira sotto una macchina virtuale denominata "Dalvik" che è molto simile (sottolineo simile) alla JVM di Sun (ora Oracle)...
|
|
hackersitiz (Normal User)
Pro
Messaggi: 120
Iscritto: 29/09/2010
|
Io ho letto e mi hanno fatto vedere dei video..
C'è un qualche emulatore dove ci si va installato un qualche programma e si possono creare delle applicazioni da eseguire su android...
Saluti
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
|
|
hackersitiz (Normal User)
Pro
Messaggi: 120
Iscritto: 29/09/2010
|
Non so davvero come ringraziarti sei stato davvero grandioso con questa risposta dettagliata....
Una sola domanda, è possibile programmarci in python ?
Grazie ancora
P.S = Illibro sembra molto bello ,
grazie ancora
Ultima modifica effettuata da hackersitiz il 13/11/2010 alle 19:48 |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
In python sarebbe già più facile, infatti esiste jython, una versione di python che ha l'interprete sviluppato in java.
Partendo da questo ho trovato jythonroid,
http://code.google.com/p/jythonroid/
Ma ti conviene studiarti le basi di Java e usare direttamente lui per sviluppare, essendo la versione ufficiale.
Ultima modifica effettuata da netarrow il 13/11/2010 alle 19:51 |
|
hackersitiz (Normal User)
Pro
Messaggi: 120
Iscritto: 29/09/2010
|
Grazie ancora ancora
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
con l'Android NDK in pratica compili il tuo codice in C o C++ sotto forma di libreria. Successivamente richiami i metodi di libreria usando l'estensione JNI all'interno dell'applicazione "launcher" che dovrai necessariamente costruire in Java.
Quindi la tecnica base è quella di fare un programma interamente in C++ o in C, con un punto d'ingresso fakeMain() e richiamare il fakeMain da un micro-programmino in Java che funziona così da launcher.
Però ci sono dei problemi:
- Android ogni tanto invia dei "messaggi" che il tuo programma dovrà gestire "lato Java"
- Se ti serve qualcosa di specifico (accelerometro, GPS, ecc...) devi richiederlo "lato Java" e poi passare i risultati al tuo programma, ecc...
Detto questo, ci sono tante tecniche, ma solo 2 sono veramente efficaci:
1- Fai un wrapper Java-vs-C per ogni funzione di Android che userai, ed esponi questo wrapper all'interno del tuo programma in C (difficile, ma ti consente di fare programmi multiplatform)
2- Fai l'intero programma in Java, e soltanto gli algoritmi veramente pesanti implementali in C e richiamali quando serve tramite chiamate JNI (facile, soluzione migliore se non sei molto esperto)
|
|
hackersitiz (Normal User)
Pro
Messaggi: 120
Iscritto: 29/09/2010
|
Postato originariamente da TheKaneB:
con l'Android NDK in pratica compili il tuo codice in C o C++ sotto forma di libreria. Successivamente richiami i metodi di libreria usando l'estensione JNI all'interno dell'applicazione "launcher" che dovrai necessariamente costruire in Java.
Quindi la tecnica base è quella di fare un programma interamente in C++ o in C, con un punto d'ingresso fakeMain() e richiamare il fakeMain da un micro-programmino in Java che funziona così da launcher.
Però ci sono dei problemi:
- Android ogni tanto invia dei "messaggi" che il tuo programma dovrà gestire "lato Java"
- Se ti serve qualcosa di specifico (accelerometro, GPS, ecc...) devi richiederlo "lato Java" e poi passare i risultati al tuo programma, ecc...
Detto questo, ci sono tante tecniche, ma solo 2 sono veramente efficaci:
1- Fai un wrapper Java-vs-C per ogni funzione di Android che userai, ed esponi questo wrapper all'interno del tuo programma in C (difficile, ma ti consente di fare programmi multiplatform)
2- Fai l'intero programma in Java, e soltanto gli algoritmi veramente pesanti implementali in C e richiamali quando serve tramite chiamate JNI (facile, soluzione migliore se non sei molto esperto) |
Ti offro una birra quando posso ok? beh poi dipende dove abiti LOL |
|