Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mono for Android是一个需要安装在Android设备上的框架,还是一个编译成java字节码的编译器?_Android_Mono_Xamarin.android - Fatal编程技术网

Mono for Android是一个需要安装在Android设备上的框架,还是一个编译成java字节码的编译器?

Mono for Android是一个需要安装在Android设备上的框架,还是一个编译成java字节码的编译器?,android,mono,xamarin.android,Android,Mono,Xamarin.android,我正试图了解android的mono是如何工作的,我在官方网站上找不到这种解释 考虑到android可以读取java字节码,Mono for android是一个需要安装在android设备上的框架,或者是一个编译成java字节码的编译器? MonoTouch创建包含Mono运行时的本机应用程序 嵌入到应用程序中。单机器人可以创造两种类型的机器人 应用。第一个是一个独立的应用程序,它是 与MonoTouch应用程序类似,使用应用程序和Mono运行时 绑在一起。应用程序所需的一切都是嵌入式的 在

我正试图了解android的mono是如何工作的,我在官方网站上找不到这种解释

考虑到android可以读取java字节码,Mono for android是一个需要安装在android设备上的框架,或者是一个编译成java字节码的编译器?

MonoTouch创建包含Mono运行时的本机应用程序 嵌入到应用程序中。单机器人可以创造两种类型的机器人 应用。第一个是一个独立的应用程序,它是 与MonoTouch应用程序类似,使用应用程序和Mono运行时 绑在一起。应用程序所需的一切都是嵌入式的 在应用程序中。第二种类型是使 使用安装在设备上的共享运行时。这是 类似于.NET应用程序在Windows上运行的方式。用这种 应用程序、应用程序以及使用 MonoDroid,可以利用共享运行时

Xamarin的网站上描述了架构是如何组合在一起的

长话短说,没有什么可以将C#编译成Java字节码。Mono for Android应用程序附带内嵌的Mono运行时,它与Dalvik(Android的Java虚拟机)并行运行。Mono运行时使用可调用包装器,以便在需要时方便与Dalvik进行来回通信,但是.NET对象直接与Mono运行时通信,而不是与Dalvik通信


为了加快开发速度,将调试模式下的应用程序设置为使用共享运行时以缩短部署时间,并允许多个应用程序共享同一运行时。但是,在发布模式下编译的应用程序不支持此功能,因此您发布和分发的任何应用程序都将包含其自己的嵌入式Mono运行时,并且不会依赖于任何其他功能。

此功能的最后一部分不再完全准确。共享运行时仍然存在于应用程序调试版本的上下文中,以帮助在测试期间加快部署速度,但正在发布的应用程序不支持共享运行时。请详细解释Mono运行时何时需要与Dalvik通信?谢谢你的回答。我链接到的那篇文章比我能解释的更好,更详细。特别是,请阅读有关可调用包装器的部分。基本上,任何需要访问Java/Android端的东西都将与Dalvik通信,即任何继承自Java.Lang.Object的东西。