2012-05-14 38 views
1

我開發了一個Android應用程序,它有一系列的活動,後臺服務和一些其他的實用程序包(它們都是用純Java編寫的),我不想混淆活動和後臺服務,但需要混淆實用程序包(純java代碼),是否可以這樣做?如果是,那麼如何在我的proguard.cfg文件中啓用它?是否可以在APK中混淆部分類/包?

或更精確地說: 應用程序正在使用一些外部jar添加到項目的lib文件夾,我只希望這些jar應該被混淆,其餘的應用程序代碼(活動,服務等)不應該得到模糊處理。如何使用eclipse和proguard.cfg實現相同的功能?

問候, 皮克斯

回答

1

如果proguard的被激活,然後在Eclipse中創建一個簽名的APK安卓時,將自動包括使用庫文件,所以你不必指定。

如果您的應用程序的包名是從庫的包名不同,那麼你可以簡單地使用通配符,並添加到您的proguard.cfg文件

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

如果包名是相同的,那麼你將不得不指定哪些類應該被手工模糊化,例如

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