为什么proguard处理AndroidManifest.xml

lst*_*kov 9 java optimization android proguard broadcastreceiver

我看到一些原因不明的Proguard行为.

AFAIK proguard不关注android清单.另外,在我的proguard.cfg中,我没有提及BroadcastReceiver相关的类.所以我认为那些应该被删除.

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

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

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

[proguard] com.fiksu.asotracking.InstallTracking
[proguard]   is kept by a directive in the configuration.
Run Code Online (Sandbox Code Playgroud)

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

很高兴知道为什么.

Eri*_*une 10

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