4

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

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

但它没有工作。

4

2 回答 2

20

标准的 Android 版本构建仅将 ProGuard 应用于已编译的字节码,而不应用于任何资源文件。因此它不能适应像 AndroidManifest.xml 这样的文件。

此外,这些构建过程首先运行aapt以将 AndroidManifest.xml 和其他 XML 文件转换为二进制版本,以便更有效地打包和使用。Aapt 还为 ProGuard 编写了一些配置。ProGuard 只能解析和适配文本格式的资源文件,所以它不适用于二进制版本。

DexGuard是专门针对 Android 的 ProGuard 的商业扩展,它简化了构建过程。它还尽可能地混淆和优化二进制 XML 文件。正如 Nikolay 所提到的,一些类名仍然不能被混淆;特别是可能从其他应用程序引用的那些。

(我是 ProGuard 和 DexGuard 的开发者)

于 2013-05-29T22:56:11.923 回答
1

您不能:系统需要了解您的组件(活动、服务等)。您也不能混淆清单中组件引用的名称。默认的 ProGuard 配置明确排除了这些配置。

于 2013-05-29T08:54:56.353 回答