对于 Android 的 Xamarin,是否不止一次安装了 Mono 运行时?
With Xamarin for Android is Mono runtime installed more than once?
使用任何 .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 App 大小的 480 多倍)。
不用说,对于 Xamarin,我们使用的是 "runtime-over-runtime" 环境,即 Mono-over-Dalvik(如果需要,也可以是 Mono-over-ART)
简化一下,我想知道的是:
既然每个 APK 都包含 Mono 框架,那么 Mono 框架是随每个应用程序一起安装还是只随我们安装的第一个应用程序一起安装?
和...
卸载Xamarin应用程序后,Mono运行时也被卸载了?如果没有,我们如何卸载 Mono 运行时?
比你
我认为您只是误解了 Mono 运行time 与每个 Xamarin Android App 捆绑在一起的目的。
它不包含在您的应用程序包中,然后安装在系统上。
它包含在包中,因此每次您 运行 您的应用程序时,它实际上 运行 是 Mono 运行 时间 包含在您的包 中,它然后运行你的应用程序。
起初它可能看起来有点愚蠢(因为您的每个应用程序都会有自己的 Mono 运行time 打包),但这使您可以在 phone 上安装不同的应用程序,这将 运行 在不同的 Mono 上 运行 次,有点像在 Docker 容器中。
唯一的例外是使用 phone 或 Android 模拟器进行调试。然后,为了加快进程,它会安装特殊的 "shared packages",但它们仅用于调试。
使用任何 .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 App 大小的 480 多倍)。
不用说,对于 Xamarin,我们使用的是 "runtime-over-runtime" 环境,即 Mono-over-Dalvik(如果需要,也可以是 Mono-over-ART)
简化一下,我想知道的是:
既然每个 APK 都包含 Mono 框架,那么 Mono 框架是随每个应用程序一起安装还是只随我们安装的第一个应用程序一起安装?
和...
卸载Xamarin应用程序后,Mono运行时也被卸载了?如果没有,我们如何卸载 Mono 运行时?
比你
我认为您只是误解了 Mono 运行time 与每个 Xamarin Android App 捆绑在一起的目的。 它不包含在您的应用程序包中,然后安装在系统上。 它包含在包中,因此每次您 运行 您的应用程序时,它实际上 运行 是 Mono 运行 时间 包含在您的包 中,它然后运行你的应用程序。
起初它可能看起来有点愚蠢(因为您的每个应用程序都会有自己的 Mono 运行time 打包),但这使您可以在 phone 上安装不同的应用程序,这将 运行 在不同的 Mono 上 运行 次,有点像在 Docker 容器中。
唯一的例外是使用 phone 或 Android 模拟器进行调试。然后,为了加快进程,它会安装特殊的 "shared packages",但它们仅用于调试。