【发布时间】:2013-10-11 09:43:41
【问题描述】:
我看到一些无法解释的 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.
如果清单中没有提到类,它会被剥离。
很高兴知道为什么。
【问题讨论】:
-
你检查过
<path-to-your-sdk>/tools/proguard/proguard-android.txt。这通常包含阻止 Proguard 完全破坏您的应用程序的声明。 -
是的,据我了解,它不包含任何与 BroadcastReceivers 或清单相关的内容,或者我的解释有误。
-
sdk 定义通常包含如下内容:
-keep public class * extends android.content.BroadcastReceiver,可防止接收器被破坏。
标签: java android optimization broadcastreceiver proguard