2012-07-24 39 views

回答

12

This article在Xamarin的網站上描述了架構是如何放在一起的。長話短說,沒有什麼東西將C#編譯成Java字節碼。 Mono for Android應用程序隨嵌入Mono運行時一起提供,並與Dalvik(Android的Java虛擬機)並行運行。 Mono運行時使用可調用的包裝器,以便在需要時與Dalvik來回交流,但.NET對象正確地與Mono運行時對話,而不是Dalvik。

爲了加速開發,調試模式下的應用程序設置爲使用共享運行時間來縮短部署時間,並允許多個應用程序共享相同的運行時。但是,在發佈模式下編譯的應用程序不支持這種方式,因此,您發佈和分發的任何應用程序都將包含其自己的嵌入式Mono運行時,並且不會依賴於其他任何應用程序。

+0

請詳細解釋Mono運行時需要與Dalvik通信的詳細模式嗎?感謝你的回答。 – 2012-07-25 13:05:25

+1

我鏈接的文章對它進行了更好的解釋,並且更詳細地說明了這一點。特別是閱讀關於可調用包裝的部分。基本上,任何需要訪問Java/Android事物的東西都將與Dalvik進行通信,即從Java.Lang.Object繼承的任何事物。 – 2012-07-25 13:37:39

0

從這篇文章

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

MonoTouch中創建包含嵌入式應用程序中的單聲道運行時 的本地應用程序。 MonoDroid可以創建兩種類型的 應用程序。第一種是單個獨立應用程序,與MonoTouch應用程序類似,爲 ,應用程序和Mono運行時 綁定在一起。應用程序需要的所有東西在應用程序中嵌入 。第二種類型是使設備上安裝的共享運行時使用 的應用程序。這類似於.NET應用程序在Windows上運行的 。通過這種類型的 應用程序,該應用程序與其他使用MonoDroid編寫的應用程序 可以使用共享運行時。

+1

這不再是完全準確的。共享運行時仍然存在於應用程序調試版本的上下文中,以幫助在測試過程中加快部署速度,但不支持正在發佈的應用程序。 – 2012-07-24 15:14:00

相關問題