是否有可能混淆apk中的部分类/包?

时间:2012-05-14 06:40:48

标签: android obfuscation proguard

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

或者更准确地说: 应用程序正在使用一些外部jar,它们被添加到项目的lib文件夹中,我希望只有这些jar应该被混淆,其余的应用程序代码(活动,服务等......)不应该被混淆。如何使用eclipse和proguard.cfg实现相同的目标?

此致 皮克斯

1 个答案:

答案 0 :(得分:1)

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

如果您的应用程序的软件包名称与库的软件包名称不同,那么您只需使用通配符并将其添加到您的proguard.cfg文件中

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

如果包名是相同的,那么你必须指定哪些类应该手工混淆,例如。

-keepnames class com.mypackagename.MyApp {
 *;
}
-keepnames class com.mypackagename.subpackage.MyClass {
 *;
}