9

我看到一些无法解释的 Proguard 行为。

AFAIK proguard 不关注 android manifest。此外,在我的 proguard.cfg 中,我没有提到 BroadcastReceiver 相关的类。所以我认为应该去掉那些。

但是我在 bin/proguard.txt 中看到了一些奇怪的东西:

# view AndroidManifest.xml #generated:784
-keep class com.fiksu.asotracking.InstallTracking { <init>(...); }

并且该类(BroadcastReceiver 的后代)不会被剥离。理性对我没有任何意义:

[proguard] com.fiksu.asotracking.InstallTracking
[proguard]   is kept by a directive in the configuration.

如果清单中没有提到类,它会被剥离。

很高兴知道为什么。

4

1 回答 1

10

构建过程运行该工具aapt以自动创建配置文件bin/proguard.txt,基于AndroidManifest.xml和其他 xml 文件。然后构建过程将配置文件传递给 ProGuard。所以 ProGuard 本身确实不考虑AndroidManifest.xml,但是 aapt+ProGuard 会。

于 2013-10-04T23:28:37.000 回答