2012-01-02 19 views
24

Q1) Quiero ejecutar un programa c simple en el emulador de Android. Estoy usando windows xp os en mi máquina. He instalado sdk, jdk, eclipse para el desarrollo de Android y he ejecutado satisfactoriamente la aplicación de Android en AVD.Cómo compilar y ejecutar un programa C/C++ en el sistema Android

Q2) Solo necesito saber si hay alguna forma de ejecutar un programa en C (sin java) en AVD. En mi máquina, he instalado el brazo y, usando eso, he compilado un programa C.

Q3) También quiero saber si es posible insertar el binario compilado en un dispositivo Android o AVD y ejecutarlo con la terminal del dispositivo Android o AVD?

Respuesta

4

Debe descargar el Native Development Kit.

+0

Ya lo he hecho ... pero no he encontrado nada útil que hacer a continuación? – user1125898

+0

@ user1125898 - ¿Qué quieres decir con que no has encontrado nada útil? El NDK es exactamente con el propósito de escribir código nativo en C/C++. Desplácese hasta la parte inferior del enlace que proporcioné y verá una sección sobre cómo comenzar, así como un enlace al grupo de discusión de NDK. –

8

si ha instalado NDK con éxito a continuación, comenzar con lo aplicación de ejemplo

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

si está interesado otros modos de esto, entonces puede que esto ayudará

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

también quiero para saber si es posible insertar el binario compilado en dispositivo Android o AVD y ejecutarlo usando la terminal del dispositivo Android o AVD?

aquí se puede ver NestedVM

NestedVM ofrece traducción binaria para Java bytecode. Esto se hace haciendo que GCC compile a un binario MIPS que luego se traduce a un archivo de clase Java. Por lo tanto, cualquier aplicación escrita en C, C++, Fortran o cualquier otro lenguaje admitido por GCC puede ejecutarse en Java 100% puro sin cambios de fuente.


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

12

Puede compilar sus programas en C con un ARM compilador cruzado:

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

A continuación, puede llevar a su archivo binario compilado a alguna parte (no empuje en la tarjeta SD):

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

Recibí 'Fatal: Kernel demasiado viejo.Falla de segmentación'. Mi ubuntu tiene kernel 3.2.0-38 mientras que Android generalmente se ejecuta en 2.6.xx ¿Sabes cómo forzar al compilador a vincular estáticamente el binario con un glibc antiguo? –

+0

@TranSonHai: debe usar Android NDK y su biblioteca de tiempo de ejecución 'bionic' en lugar de la cadena toound de ubuntu. –

+1

'-march = armv7' debe cambiarse a' -march = armv7-a'. – Javad

0

Si quieres Para compilar y ejecutar aplicaciones Java/C/C++ directamente en su dispositivo Android, recomiendo el entorno Terminal IDE de Google Play. Es un paquete muy elegante para desarrollar y compilar APK de Android, Java, C y C++ directamente en su dispositivo. La interfaz está basada en línea de comandos y "vi", por lo que tiene una sensación real de Linux. Viene con la implementación gnu C/C++.

Además, hay una aplicación de servidor telnet y telnet integrada, por lo que puede hacer toda la programación con su PC y teclado grande, pero trabajando en el dispositivo. No se necesita ningún permiso de root.

Cuestiones relacionadas