我看到一些无法解释的Proguard行为。
AFAIK proguard 不关注 android 清单。另外,在我的专业中.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.
如果清单中未提及类,则会将其剥离。
很高兴知道为什么。
构建过程运行工具aapt
,以基于AndroidManifest.xml
和其他 xml 文件自动创建配置文件bin/proguard.txt
。然后,构建过程会将配置文件传递给 ProGuard。所以ProGuard本身确实不考虑AndroidManifest.xml
,但aapt+ProGuard会。