I found that Xamarin apps run in Mono runtinme on Android, and things get passed to Dalvik. But what I can not understant is how is it possible that app is running in Mono, but normal app are executed in Dalvik. What is so different in Mono app that it runs in Mono and not Dalvik.
How can Mono be on the same level as Dalvik? Mono should be somehow stored in the app which runs in Dalvik, I think.
Please explain to me how is it possible, and sorry for my bad language.
An app developed by xamarin has the mono runtime which it takes with it onto the device. The app apk contains .net intermediate code, p-code, which obviously is not Dalvik understandable.
Xamarin.Android developers access the various features in the operating system either by calling into .NET APIs that they know (for low-level access) or using the classes exposed in the Android namespaces which provides a bridge to the Java APIs that are exposed by Dalvik.
http://docs.xamarin.com/guides/android/under_the_hood/architecture/ this is where you can find more details.