2012-08-24 16 views
12

Estoy a punto de portar un gran proyecto de C++ (algún tipo de proyecto de biblioteca, no contiene absolutamente ninguna GUI) para Android. En realidad es un proyecto de Visual C++, pero se trasladará a Linux como paso intermedio. Sé que Android no es un Linux "completo" y no pretende proporcionar todas las funciones POSIX, pero también sé que hay muchas "funciones POSIXish" en Android utilizando el NDK.¿Cuáles son las funciones POSIX más importantes que no están disponibles en Android?

Ahora mi pregunta real es:

¿Cuáles son los mayores funciones/más importantes que no están disponibles en Android en comparación con el conjunto completo POSIX? Para que pueda tener esto en cuenta al hacer la migración de Visual C++ a Linux GCC.

He intentado encontrar algo en Google, pero no encontró nada realmente útil, justo aquí y allá algunas cosas que mencionan que hay algunas funciones POSIX en Android ...

+2

quizás esto pueda ayudarlo - http://mobilepearls.com/labs/native-android-api/ y aquí algo más de información -http: //stackoverflow.com/questions/10235403/porting-embedded-visual-c -code-to-android y aquí https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/xZES51OYakY –

+0

http://stackoverflow.com/questions/4610086/pthread-cancel-alternatives -in-android-ndk – crossle

Respuesta

3

Bionic una recodificación por Google. Es pequeño pero optimizado para Android.

Lo único que sé de lo que carece es de hecho la función pthread_cancel().

Mi experiencia es que si lo transfiere con éxito a GNU/Linux, sin llamadas pthread_cancel(), entonces debería estar en su mayoría bien.

BTW, ¿qué tipo de biblioteca estás tratando de construir? ¿Qué usa? Red, hilos ...

PD: Incluso Linux no es completamente POSIX.

2

memoria compartida también es algo que puede encontrar implementado de manera diferente en Android. recibió un duro golpe al intentar trabajar con shm_open y shm_unlink en el kernel de Android. Android implementa la memoria compartida asincrónica (ashmem).

+0

Sí, hay que llamar a ashmem_create_region y compartir el descriptor de archivo devuelto entre los procesos a través de la carpeta para mapearlo. – olegst

Cuestiones relacionadas