使用任何 .NET 语言(C#、VB.NET、F# 等)开发的 AFAIK 桌面应用程序 不包括 .NET 运行时,所有应用程序都在同一个 .NET 框架上运行。
对于 Android,这是不正确的。每个应用程序都在 APK 中包含 Mono 框架。
所以,Xamarin 生成的 APK 非常庞大!
如你所见here包含整个 Mono 框架和库的 6K HelloWord 应用程序增长到 15.8M。
即使在链接器之后,6K HelloWord App 仍然保持在 2.9M(是 HelloWorld App 大小的 480 多倍)。
不用说,对于 Xamarin,我们使用的是“runtime-over-runtime”环境,即 Mono-over-Dalvik(如果需要,也可以是 Mono-over-ART)
简化这个,我想知道的是:
由于每个 APK 都包含 Mono 框架,Mono 框架是随每个应用程序一起安装还是只随我们安装的第一个应用程序一起安装?
和...
卸载 Xamarin 应用程序后,Mono 运行时也被卸载了吗?如果没有,我们如何卸载 Mono 运行时?
比你强
最佳答案
我认为您只是误解了与每个 Xamarin Android 应用程序 bundle 在一起的 Mono 运行时的用途。 它不包含在您的应用程序包中,然后安装在系统上。 它包含在包中,因此每次您运行您的应用时,它实际上运行包含在您的包中的 Mono 运行时,然后它运行您的应用。
起初它可能看起来有点愚蠢(因为你的每个应用程序都会有自己的 Mono 运行时打包在一起),但这使你能够在手机上拥有不同的应用程序,它们将在不同的 Mono 运行时上运行,有点像就像在 Docker 容器中一样。
唯一的异常(exception)是使用您的手机或 Android 模拟器进行调试。然后,为了加快进程,它会安装特殊的“共享包”,但它们仅用于调试。
关于android - 使用 Xamarin for Android 是否多次安装了 Mono 运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387133/