2

我正在尝试了解 mono for android 的工作原理,但在官方网站上没有找到这个解释。

考虑到android读取java字节码,Mono for Android是需要安装在android设备上的框架还是编译成java字节码的编译器?

4

2 回答 2

12

Xamarin 网站上的这篇文章描述了架构是如何组合在一起的。

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

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

于 2012-07-24T15:12:28.980 回答
0

从这篇文章

http://visualstudiomagazine.com/articles/2011/02/01/introducing-monodroid-intro.aspx/

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

于 2012-07-24T14:33:25.003 回答