2013-05-29 179 views
3

我可以用Proguard混淆AndroidManifest.xml文件嗎?我想用Proguard混淆AndroidManifest.xml

我想在我的proguard.config文件中寫入源代碼。 (-adaptresourcefilenames AndroidManifest.xml)

但它不起作用。

+0

您可以使用自定義ant構建腳本將類名更改爲某些隨機字符串。我認爲在這裏混淆其他東西是沒有意義的。 – Thrakbad

回答

0

您不能:系統需要了解您的組件(活動,服務等)您不能在清單中混淆組件引用的名稱。默認的ProGuard配置明確排除這些。

16

標準的Android版本構建僅將ProGuard應用於編譯的字節碼,而不應用於任何資源文件。因此它不能修改AndroidManifest.xml文件。

此外,這些構建過程首先運行aapt將AndroidManifest.xml和其他XML文件轉換爲二進制版本,以便更高效地打包和使用。 Aapt還爲ProGuard寫出了一些配置。 ProGuard只能解析和調整文本格式的資源文件,因此它不適用於二進製版本。

DexGuard,專門針對Android的ProGuard的商業擴展,簡化了構建過程。它還儘可能混淆和優化二進制XML文件。正如尼古拉所說,一些類名仍然不能被混淆;特別是那些可能從其他應用程序引用的。

(我是ProGuard和DexGuard的開發者)