android - 为什么 minifyEnabled 在默认情况下在发布版本中为 false?

标签 android gradle proguard obfuscation android-r8

在 build.gradle (app) 文件中我们默认有这个,

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

根据https://developer.android.com/studio/build/shrink-code ,
minifyEnabled true使代码更安全(使其难以进行逆向工程)并缩小发布版本的大小,我们用于发布应用程序。

我知道使用 minifyEnabled true使编译时间更长,但通常调试版本用于开发和测试,无论如何都不受影响。

我正在寻找的是,使用 minifyEnabled true 会导致哪些缺点(例如性能影响)?在运行时。我不担心发布版本的构建时间。

Google Play Console 也建议我们启用它,因此我想知道为什么是 minifyEnabled默认情况下禁用。

最佳答案

通过在发布版本中添加 minifyEnabled true ,您可以混淆代码,但在发布版本中默认设置为 false ,因为如果设置为 true ,则需要编写 proguard 规则来告诉编译器在混淆代码时要忽略哪些类。如果 minifyEnabled 默认设置为 true 并且开发人员忘记添加 proguard 规则,则可能导致运行时崩溃。

但是,将 minifyEnabled 设置为 true 并将 shrinkResources 设置为 true 可以减小您的 apk 大小。

关于android - 为什么 minifyEnabled 在默认情况下在发布版本中为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61686511/

相关文章:

java - 如何修复 ProGuard 错误

android - Android 中搜索栏的十进制值

android - View.OnSystemUiVisibilityChangeListener 在 android 服务中不起作用

android - Android 电子市场上的应用程序是否允许使用捐赠按钮?

java - Android 2.3 设备上的 USB 主机开发

Android NDK memcpy 崩溃,在 libc.so 中带有 proguard 的断回跟踪

gradle - 如何在 Gradle 代码中获取给定项目的依赖项?

android - 如何解决 "gradle failed resolve com.theartofdev.edmodo:android-image-cropper:+"

android - 如何在 Gradle 中查找依赖冲突

java - Proguard 生成错误的字符串资源 ID