【问题标题】:xamarin apps are large why and can they be smallerxamarin 应用程序很大,为什么它们可以更小?
【发布时间】:2018-03-24 04:03:16
【问题描述】:

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

【问题讨论】:

    标签: android xamarin xamarin.android


    【解决方案1】:

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

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

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

    更新 1

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

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

    【讨论】:

    • 启用链接也可能有所帮助。链接(如果使用得当)可以减少发布的应用程序大小:developer.xamarin.com/guides/android/advanced_topics/linking
    • 您可以使用以下帖子为 iOS 做一些类似的事情:developer.xamarin.com/guides/ios/advanced_topics/linker
    • @Kent.Green 你的速度非常快,你给了一个和我类似的帖子,但是是针对 Android 的。灿烂 ! :p
    • 所以如果我只是连接我的手机并编译,它会与一些包和库一起编译,这些包和库可以帮助编译器监控应用程序的工作并报告给 logcat ....etc 但是当我发布最终版本时应用程序的大小会更小,并且只包含手机需要的类和库,我做对了吗^^
    • 对于发布模式,您将不得不使用@kent.green 关于链接的帖子。这篇文章的快速概述:链接使您能够通过使用静态分析并以任何可能的方式删除应用程序不使用的程序集,从大小为 14.0 Mb 的应用程序移动到 4.4 Mb。
    猜你喜欢
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多