使用任何.NET语言(C#,VB.NET,F#等)开发的AFAIK桌面应用程序 没有包含.NET运行时,所有应用程序都运行在同一个.NET框架上。
对于Android,这不是真的。每个应用程序都包含APK内的Mono框架。
所以,Xamarin生成的APK很棒!
正如您所看到的here,6K HelloWord应用程序增长到15.8M,包含整个Mono框架和库。
即使在链接器之后,6K HelloWord App仍然保持在2.9M(超过HelloWorld应用程序大小的480倍)。
毋庸置疑,使用Xamarin,我们正在使用"运行时运行时"环境,即Mono-over-Dalvik(如果你愿意,可以是Mono-over-ART)
简化这一点,我想知道的是:
由于每个APK都包含Mono框架,因此Mono框架随每个应用程序一起安装,或者只安装我们安装的第一个应用程序?
和...
卸载Xamarin应用程序后,Mono运行时也会被卸载?如果没有,我们如何卸载Mono运行时?
比你
答案 0 :(得分:1)
我认为您误解了与每个Xamarin Android应用程序捆绑在一起的Mono运行时的目的。 它不包含在您的App包中,然后安装在系统上。 它包含在软件包中,因此每次运行应用程序时,它实际上都会运行程序包中包含的Mono运行时 ,然后运行您的应用程序。
起初它可能看起来有点愚蠢(因为你的每个应用程序都将自己的Mono运行时打包),但是这使你可以在手机上拥有不同的应用程序,这些应用程序可以在不同的Mono运行时运行,就像在Docker容器中一样。
唯一的例外是使用手机或Android模拟器进行调试。然后,为了加快这个过程,它将安装特殊的“共享包”,但它们仅用于调试。