- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 android studio 的 build.gradle 文件中,我们可以使用 shrinkresources
设置为 true
来缩小我们的应用程序。也可以使用 minifyenabled
和 proguard
选项也是如此。
但是在 xamarin 中,我如何使用这些选项?
我在我的应用程序中使用了混淆器,因为它在 xamarin 文档中提到。但没有找到任何用途(我的意思是我的应用程序大小没有减少)。我的简单应用程序大小约为 18Mb。如果有人有在 xamarin 中使用 proguard 的经验,请在此处粘贴示例文件并说明您是如何完成此操作的。这样其他人也可以受益。
最佳答案
我知道您具体询问的是 Android Studio 的 proguard 和 minifyenabled 功能,但如果目的是专门减小应用程序的大小,您应该 configure a more aggressive linking strategy .
确保这仅适用于 Release 或 Ad-Hoc 配置,具体取决于您的分发策略。
链接器配置工作流程:
如果你不喜欢配置文件,你也可以使用PreserveAttribute .如果链接器正在剥离您的一个 PCL 中无权访问此属性的类,您可以在该 PCL 中定义您自己的名为 PreserverAttribute 的属性,因为链接器只是在寻找具有该名称的属性,而不是具体类型。
链接器通过分析代码路径并删除它认为未使用的引用来工作。如果您使用依赖注入(inject),链接器将无法理解它需要保留哪些引用,因此这可能需要一些时间,但它可以大大减少应用程序的大小,而且您只需执行一次。对于 iOS,您也可以按照上述相同步骤操作。
Bonus 确保在构建选项中选中“Strip native debugging symbols”。它是默认设置的,但一些心怀不满的同事可能没有选中它。
其他资源:
Linking on iOS
关于android - xamarin 中的 shrinkresource、proguard 等不会减小我的应用程序大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37792219/
我的 res/raw 文件夹中有一个 mp3 和一个 ogg 文件,我将它们与 Android Media Player 一起使用。我像这样使用 setDataSource musicPlayer.s
我正在尝试使用 shrinkResources,但它在构建时失败了。当我不使用 shrinkResources 时,我没有发现任何问题。我有以下配置: minifyEnabled true shr
我正在尝试 build-plugin 的新功能 - 不幸的是它从 res/raw 中删除了我的声音,即使它们在代码中被引用。有没有办法保护资源不被删除? 编辑 - 经过一番尝试 - 似乎此功能尚未成熟
如何排除所有 /res/raw/*.wav 文件收缩? buildTypes { release { shrinkResources true minifyEn
在 android studio 的 build.gradle 文件中,我们可以使用 shrinkresources 设置为 true 来缩小我们的应用程序。也可以使用 minifyenabled
我有一个包含很多可绘制对象的项目,这些可绘制对象的名称以“a”或“b”开头(例如 a1_back、a2_back、b1_start、b2_start 等等)。这些可绘制对象未在代码中使用,但由以下代码
背景 根据 Andriod 文档 (here) 的“资源缩减”网页,您可以通过 build.gradle 文件最小化应用程序的大小,使用以下几行: android { ... buil
我在我的 gradle 项目中启用了新工具 shrinkResources 但由于找不到 AppCompat 颜色 xml 而失败,可能已被该工具删除。 11-03 11:30:19.095: E/A
当我尝试缩小我的功能 APK 大小时,我在我的功能构建 Gradle 中使用 shrinkResources true。但是它提示 Error:Resource shrinker cannot b
当我尝试缩小我的功能 APK 大小时,我在我的功能构建 Gradle 中使用 shrinkResources true。但是它提示 Error:Resource shrinker cannot b
我将 shrinkResources 设置为 true,如下所示: releasepro { minifyEnabled true shrinkResources true p
作为 Android Studio 2.2 推出的一部分,我将我的 Gradle 构建工具更新到了 v2.2。这样做之后,我签名的 APK 构建过程失败了,因为我有 shrinkResources =
我在将我的项目迁移到最新的 Gradle 4.0 + Android Studio 3 版本时遇到问题,这给了我各种各样的错误。渐渐地,我设法将它们全部整理出来,除了这个。 Could not
这是我的混淆文件: -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keep public class
我是一名优秀的程序员,十分优秀!