在Android中仅启用混淆功能,而不启用代码缩减功能?

时间:2019-04-17 06:12:45

标签: android proguard obfuscation minify android-proguard

我只想启用ProGuard中的混淆功能,但同时禁用代码收缩,因此我设置了

minifyEnabled false
useProguard true

但是,现在发布的编译不再产生mapping.txt了,我猜这表明没有进行混淆处理吗?我以为minifyEnabled可以控制代码收缩,而useProguard可以控制混淆,但是事实并非如此?

useProguard标志的作用是什么?如何获得所需的结果?

2 个答案:

答案 0 :(得分:3)

minifyEnabled true:它运行ProGuard

shrinkResources true:它将删除ProGuard标记为未使用的资源。

从DEX删除不需要的文件时,APK大小也会减小。出于您的目的,可以将此属性设置为false

答案 1 :(得分:0)

我认为您需要使用-dontshrink选项来保留所有未使用的类,方法和资源。

阅读Shrinking options,其中文档说

  

-dontshrink

指定不缩小输入类文件。默认情况下,将应用缩小;除各种-keep选项列出的类以及它们直接或间接依赖的类之外,所有类和类成员都将被删除。在每个优化步骤之后,还会执行缩小步骤,因为某些优化可能会删除更多的类和类成员。