>>698
だいたいあってる
C# => C#中間バイナリ => Android Nativeバイナリ とコンパイルする(JIT含む)

実行時には.NETランタイム(Monoランタイム/VM)が
Android NativeバイナリからAndroid API(C言語I/F)を経由してAndroid API(Java)を呼び出す

http://www.mono-project.com/docs/advanced/runtime/
とか
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/
を解読したら読み取れるんじゃないかな

.NETランタイム(Mono)はVMじゃねぇ!!とか言う奴いるけどJITコンパイラを含むVMなんだよなぁ
極力プレコンパイルなりJITなりでネイティブコードに落としてるんだろうけど限界はあるやね