2011-11-15 13 views

Respuesta

0

Necesitará el Android NDK encontrado here Hay ejemplos incluidos en la página web y la descarga de cómo compilar el código C para Android.

Desde el NDK Website:

El NDK ofrece:

Un conjunto de herramientas y crear archivos que se utilizan para generar bibliotecas de código nativo de C y C++ fuentes Una manera de integrar los correspondientes bibliotecas nativas en un archivo de paquete de aplicación (.apk) que se puede implementar en dispositivos Android Se admitirá un conjunto de encabezados y bibliotecas de sistema nativo que en todas las versiones futuras de la plataforma Android, a partir de Android 1.5. Las aplicaciones que usan actividades nativas deben ejecutarse en Android 2.3 o posterior. Documentación, ejemplos y tutoriales

Yo también encuentro this si es cerca de lo que quiere lograr.

+0

Gracias por su respuesta rápida. Ya descargué NDK. Lo que intento hacer es compilar códigos fuente rsync en un binario ejecutable para poder invocar este binario dentro de los códigos java. – Macchiato

+0

Si te entiendo correctamente, no quieres compilar una biblioteca, sino crear un archivo ejecutable. Creo que esto es bastante difícil de lograr y personalmente vería si pudiera convertir el código en una biblioteca y usarlo de esa manera. Estoy incluido algunos enlaces e información en mi respuesta anterior. – Kerry

+0

hola kerubu, lo siento, no noté el segundo enlace de su respuesta. También me topé con ese sitio. pero termino compilando los códigos usando los compiladores cruzados proporcionados por NDK. Gracias. – Macchiato

10

Puede compilar sin el NDK suponiendo que tiene un enlace estático. Esto funciona para mí en Ubuntu 13.04 Raring Ringtail.

Instalar el compilador cruzado:

sudo apt-get install gcc-arm-linux-gnueabi 

Descargar rsync:

wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz 
tar -zxv -f rsync-3.0.9.tar.gz 
cd rsync-3.0.9 

compilar con el compilador cruzado, mediante la vinculación estática:

./configure --host=arm-linux-gnueabi CFLAGS="-static" 
make 

que obtendrá algunas advertencias a lo largo las líneas de Using X in statically linked applications requires at runtime the shared libraries from the glibc version used for linking. Pero hasta ahora, rsync me ha funcionado.

Y, por último, instalar en el teléfono (supone que está utilizando SSHDroid):

scp -P 2222 rsync [email protected]$PHONE_IP:/data/data/berserker.android.apps.sshdroid/dropbear 
+0

Tenga en cuenta que debe mover el binario a/data (por ejemplo,/data/local/tmp) y hacer que sea ejecutable (chmod 0777 rsync) antes de que se ejecute. – yanokwa

+0

¿cuál es el código binario. Puede ayudarme http://stackoverflow.com/questions/22529567/compile-the-rsync-source-code-and-deploy-it-to-android-device – pengwang