为什么proguard处理AndroidManifest.xml

时间:2013-10-04 11:47:21

标签: java android optimization broadcastreceiver proguard

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

AFAIK proguard不注意android清单。另外,在我的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.

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

很高兴知道原因。

1 个答案:

答案 0 :(得分:9)

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