Tengo una pregunta sobre las limitaciones de lo que puede hacer en el código nativo en la plataforma Android.Android NDK limitaciones?
Básicamente, he desarrollado una biblioteca en código C nativo que usa sockets UDP para SIP/RTP y utiliza OpenAL para grabación/reproducción de audio, básicamente, toda la aplicación. La idea es tener tanto como sea posible en código C nativo en lugar de código Java. Quiero hacer esto porque también voy a usarlo en otras plataformas.
Mi pregunta es sencilla: ¿es posible simplemente usar Java para la GUI y luego todo el procesamiento en código nativo? ¿Qué sucederá cuando mi código nativo intente crear un socket, vincularlo, grabar audio, reproducirlo, etc., ya que está en código nativo, necesito configurar permisos para ello (como aplicaciones que acceden al micrófono y otras cosas) o ¿Pasará por alto esto desde su código nativo? ¿Puede el código nativo hacer casi cualquier cosa que quiera en Android como en PC?
Lo siento si no está claro; simplemente digo y voy a tratar de mejorarlo
Gracias
¿Podría explicar lo que quiere decir con 'compatible'? Por ejemplo, no puedo encontrar conectores en la lista de bibliotecas NDK. ¿Todavía puedo usarlos? ¿Qué archivos de cabecera y cosas usas? ¿No hay sys/sockets? – KaiserJohaan
No te gustará esto, pero ... tendrás que pasar por Java, es decir, usar FindClass en 'Socket', luego obtener el método para el constructor, el método para' leer', el método para 'write' , almacenas el socket como un 'jobject' en tu código, y usas' CallVoidEnvMethod' o algo similar. Suena absolutamente horrible, pero puedes escribir una capa delgada que traduce entre C y Java y terminar con solo un puñado de esas funciones de traducción. – EboMike
Btw, como señaló Kazuki, PUEDE haber soporte total para la API de socket, pero personalmente siempre he usado esta indirección a través de Java. – EboMike