android - xamarin 应用程序很大,为什么以及它们可以更小

标签 android xamarin xamarin.android

我使用 Xamarin 和 Android Studio 创建了一个 Hello World 应用。当我进入 App Manager 时,使用 Xamarin 构建的应用程序大小为 47 Mb,而使用 Android Studio 构建的应用程序大小为 12 Mb。我知道跨平台一定要大,可是为什么要这么大呢?难道没有什么导出设置可以让它变小吗?

最佳答案

它很大,因为它大部分包含一个包,其中包括应用程序、库、Mono 运行时等,例如 BCL 库(基类库)。下面,您可以找到基本发布包的包大小

enter image description here

对于调试,它有点不同。首先,在 Android 设备上调试时,需要复制 2 个大包(Shared Runtime & Platform)。第一个包含 BCL 和单声道运行时,另一个包含您的应用程序将针对的特定机器人 API 级别。

为了在调试时减小应用程序的大小,您可以使用快速组装部署选项。此选项使您能够直接在测试设备上安装所需的包。这样做,应用程序包的大小大大减少。为此,请在 Xamarin Studio 中找到选项。然后,您将找到 Build 部分并单击 Android Build。最后,单击 Use shared Mono runtime 和 Fast assembly deployment 复选框。保存您的更改并在连接设备的情况下构建您的应用程序,您应该可以开始了:)

更新 1

在评论里聊了一会儿,我发现最好把所有的相关信息都放在这里,而不是强制读者在评论部分下去了解更多他/她的内容来到这里寻找。所以我被问及如何在 Release模式下减小应用程序的大小。在 Release模式下,您将不得不使用@kent.green 关于链接的帖子。帖子的快速概览:Linking使您能够通过使用静态分析并以任何可能的方式删除应用程序未使用的程序集,将大小为 14.0 Mb 的应用程序移动到 4.4 Mb。对于寻找类似 iOS 产品的人,请查看此 post .

此外,OP 还担心他/她的应用程序的 Debug模式。 OP 想知道通过启用快速程序集部署是否会失去资源监控或崩溃报告等功能。我回答说,从技术的角度来看,事实仍然是相同的功能。不是使用大小为 X 的应用程序包,而是通过使用您的测试设备来减小包的大小,并将“不必要”的东西放在那里以使包更小。我不认为这两个共享库都受此影响。

关于android - xamarin 应用程序很大,为什么以及它们可以更小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36561571/

相关文章:

java - 将位图设置为 ImageView

java - 在 android 上移植屏幕截图 java 应用程序

xamarin - 如何从不同的 View 添加到 ObservableCollection?

c# - Xaml 中的 Android native View 不显示在 Xamarin.Forms 中

android - MvvmCross Android ImageView绑定(bind)图片src

c# - 使用 C# 的 Android 和 IOS 自定义 UI 控件

android - 提取android中图片的exif信息

java - 我想从 URL 解析 JSON 对象(不使用 JSON 数组)

xamarin - 在控制台或文件中写入Xamarin版本信息

xamarin.ios - 是否可以使用 Xamarin 创建 Web 应用程序?然后创建 Xamarin iPhone 和 Android 来连接它?