1

我开发了一个 android 应用程序,它具有一组活动、后台服务和一些其他实用程序包(它们是用纯 java 编写的),我不想混淆活动和后台服务,但需要混淆实用程序包(纯 java 代码),是否可以这样做?如果是,那么如何在我的 proguard.cfg 文件中启用它?

或者以更精确的方式:应用程序正在使用一些添加到项目的 lib 文件夹中的外部 jars,我希望只有这些 jars 应该被混淆,其余的应用程序代码(活动、服务等)不应该被混淆。如何使用 eclipse 和 proguard.cfg 达到同样的效果?

问候, 皮克斯

4

1 回答 1

1

如果激活了 proguard,那么在 Eclipse 中创建签名 APK 时,Android 将自动包含使用的库文件,因此您不必指定此项。

如果您的应用程序的包名与库的包名不同,那么您可以简单地使用通配符并将其添加到您的 proguard.cfg 文件中

-keepnames class com.mypackagename.** {
 *;
}

如果包名相同,那么您必须手动指定哪些类应该被混淆,例如

-keepnames class com.mypackagename.MyApp {
 *;
}
-keepnames class com.mypackagename.subpackage.MyClass {
 *;
}
于 2012-05-14T11:15:26.400 回答