Android portado a C#


Xamarin, un startup basado en Boston nos pone a disposición XobotOS, un proyecto de investigación que permite crear aplicaciones nativas para Android utilizando C# gracias a Mono.

Xobotos

Según mencionan en su blog, el equipo desarrollador se planteaba mejorar la máquina virtual que utiliza Android, Dalvik. Mencionan que no está más optimizado que Mono ya que sufre las limitaciones de Java. Y por tanto se embarcaron en traducir el código fuente de Android a C# con el objetivo de que Android se beneficiase del desempeño de C# con sus características propias tales como P/Invoke, genéricos reales y de un tiempo de ejecución más maduro.

El resultado de su esfuerzo es que ahora ya disponen de una mayoría de características Android (layouts y controles) traducidas completamente a C#.

Traducción de Java con Sharpen

El código fuente núcleo de Android contiene más de un millón de líneas de código Java, y para estar a la par con las nuevas versiones que Google lanzara, se apoyaron en Sharpen, una herramienta muy reconocida que permite portar código Java a C#, dicha herramienta también está disponible con XobotOS.

Rendimiento

MonovsDalvik

La gráfica muestra un benchmark comparando Mono con Dalvik, ahí se puede ver la gran diferencia entre ambos.

 

Cómo obtener (descarga)

XobotOS ya está disponible en github, así que desde allí pueden obtenerlo.

Lo que planean para con esta herramienta a futuro incluye:

  • Acceso directo a los gráficos en Skia: Actualmente Mono para Android accede a los gráficos a través de las bibliotecas Java, teniendo a futuro realizar un cambio para que el acceso lo haga directamente Mono.
  • Java a C# : Disponibilidad de la herramienta mejorada Sharpen como parte de XobotOS
  • Reemplazar código Java con código C#: con las nuevas herramientas que les permita reemplazar pedazos de código Java en C# teniendo en cuenta siempre el rendimiento como parte crítica de esa tarea, se planea integrar dichas herramientas.

En cuanto a la licencia, varios componentes de XobotOS están licenciadas bajo la misma licencia de su proveedor. Mientras que la versión C# para Android está licenciada bajo los términos de la licencia Apache 2, y la versión optimizada de Sharpen tiene licencia GPL.

 

Fuente: OSNews