我开发了一个Android应用程序,它有一组活动,后台服务和一些其他实用程序包(用纯java编写),我不想混淆活动和后台服务,但需要混淆实用程序包(纯java代码),是否可以这样做?如果是,那么如何在我的proguard.cfg文件中启用它?
或者更准确地说: 应用程序正在使用一些外部jar,它们被添加到项目的lib文件夹中,我希望只有这些jar应该被混淆,其余的应用程序代码(活动,服务等......)不应该被混淆。如何使用eclipse和proguard.cfg实现相同的目标?
此致 皮克斯
答案 0 :(得分:1)
如果proguard被激活,那么Android会在Eclipse中创建签名的APK时自动包含使用过的库文件,因此您不必指定它。
如果您的应用程序的软件包名称与库的软件包名称不同,那么您只需使用通配符并将其添加到您的proguard.cfg文件中
-keepnames class com.mypackagename.** {
*;
}
如果包名是相同的,那么你必须指定哪些类应该手工混淆,例如。
-keepnames class com.mypackagename.MyApp {
*;
}
-keepnames class com.mypackagename.subpackage.MyClass {
*;
}