2012-05-03 56 views
1

我有一個關於如何混淆Android庫項目的問題。總的來說,我想混淆包含.java文件(在Android src /目錄中)和XML文件/外部資源(在Android res /目錄中)的apklib文件(或者任何庫項目的.java文件) )。我希望能夠將這個庫分發給其他開發人員,類似於Facebook SDK庫(https://github.com/facebook/facebook-android-sdk以供參考)。但是,我希望代碼被模糊處理,以便我的方法不會以易於閱讀的方式公開。混淆Android庫項目/ apklib

我試過使用Proguard和Maven,但即使在使用Proguard構建我的項目之後,我的.apklib中的文件未被混淆。我也嘗試手動運行Proguard,但我無法輸出原始.java文件(可以將其他項目作爲庫引用)而不是.class文件。

如果任何人有任何關於如何混淆apklib/Android庫中的Java代碼的信息,我將非常感激。此外,它也將是非常有用的知道,如果根本不可能創建一個混淆的andoroid庫。

非常感謝您的幫助。

最佳, 凱文

回答

0

取決於你如何設置Android行家的插件,您可以最有可能創建一個模糊的apklib ProGuard的目標。然而,我卻沒有嘗試過自己。請記住,proguard可能會混淆爲輔助工件,而不是主要的apklib。

你還應該記住,如果你混淆了庫,你的用戶將不得不使用混淆的方法名......這種方式打破了分發的目的,並且會使它非常難以使用,所以它可能是一個壞主意。這將工作的唯一的事情是,如果你混淆所有的代碼而不混淆任何公共方法和類名稱。

+0

Manfred - 非常感謝。我的Proguard配置的確保留了公共方法,這樣開發人員就不需要像調用混淆方法那樣做任何瘋狂事情。我會研究Proguard是否會混淆爲次要工件 - 這與我所看到的一致,但我不確定如何將代碼重新合併到可導入的庫中。 – Kevin

+0

您可以使用構建助手插件將庫部署爲輔助構件..並且只能使用該構件。用分類器.. –