gpt4 book ai didi

android - xamarin 中的 shrinkresource、proguard 等不会减小我的应用程序大小

转载 作者:行者123 更新时间:2023-11-29 19:45:34 24 4
gpt4 key购买 nike

在 android studio 的 build.gradle 文件中,我们可以使用 shr​​inkresources 设置为 true 来缩小我们的应用程序。也可以使用 minifyenabledproguard 选项也是如此。

但是在 xamarin 中,我如何使用这些选项?

我在我的应用程序中使用了混淆器,因为它在 xamarin 文档中提到。但没有找到任何用途(我的意思是我的应用程序大小没有减少)。我的简单应用程序大小约为 18Mb。如果有人有在 xamarin 中使用 proguard 的经验,请在此处粘贴示例文件并说明您是如何完成此操作的。这样其他人也可以受益。

最佳答案

我知道您具体询问的是 Android Studio 的 proguard 和 minifyenabled 功能,但如果目的是专门减小应用程序的大小,您应该 configure a more aggressive linking strategy .

  1. 右键点击android项目
  2. 在“构建”下选择“Android 构建”(或“iOS 构建”)
  3. 为“链接器行为”下拉列表选择“全部链接”

确保这仅适用于 Release 或 Ad-Hoc 配置,具体取决于您的分发策略。

链接器配置工作流程:

  1. 在物理设备上运行应用以获得所需的配置(发布/临时)
  2. 测试功能直到出现“TypeInitializationException”或类似异常
  3. 在配置文件中添加类型/字段/方法
  4. 冲洗并重复直到应用稳定

如果你不喜欢配置文件,你也可以使用PreserveAttribute .如果链接器正在剥离您的一个 PCL 中无权访问此属性的类,您可以在该 PCL 中定义您自己的名为 PreserverAttribute 的属性,因为链接器只是在寻找具有该名称的属性,而不是具体类型。

链接器通过分析代码路径并删除它认为未使用的引用来工作。如果您使用依赖注入(inject),链接器将无法理解它需要保留哪些引用,因此这可能需要一些时间,但它可以大大减少应用程序的大小,而且您只需执行一次。对于 iOS,您也可以按照上述相同步骤操作。

Bonus 确保在构建选项中选中“Strip native debugging symbols”。它是默认设置的,但一些心怀不满的同事可能没有选中它。

其他资源:
Linking on iOS

Linking on Android

关于android - xamarin 中的 shrinkresource、proguard 等不会减小我的应用程序大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37792219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com