2012-01-02 15 views
24

Q1) Voglio eseguire un semplice programma c su emulatore android. Sto utilizzando il sistema operativo windows xp sulla mia macchina. Ho installato sdk, jdk, eclipse per lo sviluppo Android e ho avuto successo con un'applicazione Android su AVD.Come compilare ed eseguire un programma C/C++ sul sistema Android

Q2) Ho solo bisogno di sapere c'è un modo per eseguire un programma C (senza java) su AVD. Sulla mia macchina ho installato il braccio e usando che ho compilato un programma C.

Q3) Voglio anche sapere è possibile spingere il file binario compilato nel dispositivo Android o AVD ed eseguire utilizzando il terminale del dispositivo Android o AVD?

risposta

4

È necessario scaricare il Native Development Kit.

+0

L'ho già fatto ... ma non ho trovato nulla di utile su cosa fare dopo? – user1125898

+0

@ user1125898 - Cosa vuoi dire se non hai trovato nulla di utile? L'NDK ha esattamente lo scopo di scrivere codice nativo in C/C++. Scorri fino alla fine del link che ho fornito e vedrai una sezione su come iniziare, oltre a un collegamento al gruppo di discussione NDK. –

8

se è stato installato NDK successo quindi avviare con esso applicazione di esempio

http://developer.android.com/sdk/ndk/overview.html#samples

se siete interessati altri modi di questo, allora può questo aiuterà

http://shareprogrammingtips.com/c-language-programming-tips/how-can-i-write-applications-in-c-or-c-for-android/

Voglio anche sapere è possibile spingere il file binario compilato nel dispositivo Android o AVD ed eseguire utilizzando il terminale del dispositivo Android o AVD?

qui si può vedere NestedVM

NestedVM fornisce la traduzione binaria per Java Bytecode. Ciò avviene facendo compilare GCC su un binario MIPS che viene poi tradotto in un file di classe Java. Quindi qualsiasi applicazione scritta in C, C++, Fortran o qualsiasi altra lingua supportata da GCC può essere eseguita in puro Java al 100% senza modifiche di origine.


Esempio: Cross compile Hello world C program and run it on android

12

È possibile compilare i programmi C con un ARM cross-compilatore:

arm-linux-gnueabi-gcc -static -march=armv7-a test.c -o test 

quindi si può spingere il file binario compilato da qualche parte (non spingere nella scheda SD):

adb push test /data/local/tmp/test 
+1

Ho ottenuto 'Fatal: kernel troppo vecchio.Errore di segmentazione ». La mia ubuntu ha il kernel 3.2.0-38 mentre Android solitamente gira su 2.6.xx Sapete come forzare il compilatore a collegare staticamente il binario con un vecchio glibc? –

+0

@TranSonHai: dovresti usare Android NDK e la sua libreria di runtime 'bionic' invece della tooolchain di ubuntu. –

+1

'-march = armv7' dovrebbe essere cambiato in' -march = armv7-a'. – Javad

0

Se si desidera t per compilare ed eseguire applicazioni Java/C/C++ direttamente sul tuo dispositivo Android, raccomando l'ambiente Terminal IDE da Google Play. È un pacchetto molto elegante per sviluppare e compilare APK Android, Java, C e C++ direttamente sul tuo dispositivo. L'interfaccia è interamente a riga di comando e basata su "vi", quindi ha una vera sensazione di Linux. Viene fornito con l'implementazione di gnu C/C++.

Inoltre, è integrata un'applicazione server telnet e telnet, in modo da poter eseguire tutta la programmazione con il PC e la tastiera grande, ma lavorando sul dispositivo. Non è necessario alcun permesso di root.

Problemi correlati