为什么默认情况下minifyEnabled在发行版中为false?

阿米拉(Amila Abeygunasekara)

在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控制台还建议我们启用它,因此我想知道为什么minifyEnabled默认情况下禁用该功能。

尼基·阿加瓦尔

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么默认情况下,即使不兼容POSIX,也有几个Linux发行版附带了mawk?

来自分类Dev

为什么在某些linux发行版中,systemd服务默认为启用,而在其他情况下则未启用?

来自分类Dev

终端中的颜色在各种发行版中代表什么文件类型类别(默认情况下)?

来自分类Dev

默认情况下,python 2.6随附哪个linux发行版?

来自分类Dev

如何在不重启的情况下从其他Linux发行版中安装Ubuntu

来自分类Dev

默认情况下将Yocto与使用python3的发行版一起使用

来自分类Dev

为什么在发行版中未列出“ zesty”?

来自分类Dev

如何在不更改ubuntu的Linux发行版的情况下升级numpy

来自分类Dev

在不覆盖GRUB2的情况下安装新的Linux发行版

来自分类Dev

如果要在默认情况下使用Gnome的发行版中进行apt全面升级,是否需要对KDE软件包进行apt-mark保存?

来自分类Dev

为什么大多数Linux发行版默认都安装了Perl?

来自分类Dev

为什么大多数Linux发行版默认都安装了Perl?

来自分类Dev

BCRYPT-为什么Linux发行版默认不使用它?

来自分类Dev

禁用THP有何弊端,为什么许多发行版默认将其启用?

来自分类Dev

为什么picocli即使在默认多重性为0..1的情况下,也要求ArgGroup中的args?

来自分类Dev

为什么14.04.1尚未显示为12.04的发行版升级?

来自分类Dev

为什么默认情况下默认情况下默认保留opt文件夹?

来自分类Dev

可以在不引导的情况下运行已安装发行版磁盘上的可执行文件吗?

来自分类Dev

如何在没有用户(只有root)的情况下登录通用Linux发行版?

来自分类Dev

Live CD发行版,用于在没有X Windows的情况下从NTFS分区获取数据

来自分类Dev

为什么在现代Linux上,默认堆栈大小如此之大-8MB(在某些发行版中甚至为10MB)

来自分类Dev

为什么默认情况下将Integer变量分配为null?

来自分类Dev

为什么默认情况下'CLLocationManager.locationServicesEnabled()'为true?

来自分类Dev

为什么Karmic(9.10)既不能从“发行版”中获得,也不能从“旧发行版”中获得?

来自分类Dev

为什么Karmic(9.10)既不能从“发行版”中获得,也不能从“旧发行版”中获得?

来自分类Dev

为什么我们在Azure Devops中的管道下使用环境?并且在创建版本/发行版中是否存在每月/每年的限制?

来自分类Dev

为什么与Android的兼容性不是Linux发行版中的常见功能?

来自分类Dev

为什么与Android的兼容性不是Linux发行版中的常见功能?

来自分类Dev

在玩具总动员中的角色用完后,Debian发行版将被称为什么?

Related 相关文章

  1. 1

    为什么默认情况下,即使不兼容POSIX,也有几个Linux发行版附带了mawk?

  2. 2

    为什么在某些linux发行版中,systemd服务默认为启用,而在其他情况下则未启用?

  3. 3

    终端中的颜色在各种发行版中代表什么文件类型类别(默认情况下)?

  4. 4

    默认情况下,python 2.6随附哪个linux发行版?

  5. 5

    如何在不重启的情况下从其他Linux发行版中安装Ubuntu

  6. 6

    默认情况下将Yocto与使用python3的发行版一起使用

  7. 7

    为什么在发行版中未列出“ zesty”?

  8. 8

    如何在不更改ubuntu的Linux发行版的情况下升级numpy

  9. 9

    在不覆盖GRUB2的情况下安装新的Linux发行版

  10. 10

    如果要在默认情况下使用Gnome的发行版中进行apt全面升级,是否需要对KDE软件包进行apt-mark保存?

  11. 11

    为什么大多数Linux发行版默认都安装了Perl?

  12. 12

    为什么大多数Linux发行版默认都安装了Perl?

  13. 13

    BCRYPT-为什么Linux发行版默认不使用它?

  14. 14

    禁用THP有何弊端,为什么许多发行版默认将其启用?

  15. 15

    为什么picocli即使在默认多重性为0..1的情况下,也要求ArgGroup中的args?

  16. 16

    为什么14.04.1尚未显示为12.04的发行版升级?

  17. 17

    为什么默认情况下默认情况下默认保留opt文件夹?

  18. 18

    可以在不引导的情况下运行已安装发行版磁盘上的可执行文件吗?

  19. 19

    如何在没有用户(只有root)的情况下登录通用Linux发行版?

  20. 20

    Live CD发行版,用于在没有X Windows的情况下从NTFS分区获取数据

  21. 21

    为什么在现代Linux上,默认堆栈大小如此之大-8MB(在某些发行版中甚至为10MB)

  22. 22

    为什么默认情况下将Integer变量分配为null?

  23. 23

    为什么默认情况下'CLLocationManager.locationServicesEnabled()'为true?

  24. 24

    为什么Karmic(9.10)既不能从“发行版”中获得,也不能从“旧发行版”中获得?

  25. 25

    为什么Karmic(9.10)既不能从“发行版”中获得,也不能从“旧发行版”中获得?

  26. 26

    为什么我们在Azure Devops中的管道下使用环境?并且在创建版本/发行版中是否存在每月/每年的限制?

  27. 27

    为什么与Android的兼容性不是Linux发行版中的常见功能?

  28. 28

    为什么与Android的兼容性不是Linux发行版中的常见功能?

  29. 29

    在玩具总动员中的角色用完后,Debian发行版将被称为什么?

热门标签

归档