Citar
Compilación:
- El compilador que se utiliza es Mono.
- El código C#/VB.Net se compila a código máquina (machine code), no byte-code, no IL code.
Ejecución:
- Para la ejecución del código máquina no se utiliza el JIT de .Net, sino AOT.
- El runtime y VM de android (ART) automaticamente genera unas classes de Java conocidas como Android Callable Wrappers (ACW)
lo que sirve para que el runtime y VM de Mono se comunique de ida y vuelta con ART, y vice versa,
esa es la base de la interoperabilidad entre Mono y Android:
Aquí tienes algo más de información general:
➢ Part 1 – Understanding the Xamarin Mobile Platform - Xamarin
Aquí tienes un ejemplo más claro de lo que sucede internamente en la ejecución del código nativo compilado y empacado en la .app:
➢ Android Callable Wrappers. Implementation Details - Xamarin
Aparte de eso, Xamarin tiene algunas limitaciones:
➢ Limitations - Xamarin
- El compilador que se utiliza es Mono.
- El código C#/VB.Net se compila a código máquina (machine code), no byte-code, no IL code.
Ejecución:
- Para la ejecución del código máquina no se utiliza el JIT de .Net, sino AOT.
- El runtime y VM de android (ART) automaticamente genera unas classes de Java conocidas como Android Callable Wrappers (ACW)
lo que sirve para que el runtime y VM de Mono se comunique de ida y vuelta con ART, y vice versa,
esa es la base de la interoperabilidad entre Mono y Android:
Aquí tienes algo más de información general:
➢ Part 1 – Understanding the Xamarin Mobile Platform - Xamarin
Aquí tienes un ejemplo más claro de lo que sucede internamente en la ejecución del código nativo compilado y empacado en la .app:
➢ Android Callable Wrappers. Implementation Details - Xamarin
Aparte de eso, Xamarin tiene algunas limitaciones:
➢ Limitations - Xamarin