1

我有一个关于如何混淆 Android 库项目的问题。总的来说,我想混淆一个包含 .java 文件(在 Android src/ 目录中)和 XML 文件/外部资源(在 Android res/ 目录中)的 apklib 文件(或者实际上是任何库项目的 .java 文件) )。我希望能够将此库分发给其他开发人员,类似于 Facebook SDK 库(https://github.com/facebook/facebook-android-sdk 供参考)。但是,我希望代码被混淆,这样我的方法就不会以易于阅读的方式公开。

我已经尝试将 Proguard 与 Maven 一起使用,但即使在使用 Proguard 构建我的项目之后,我的 .apklib 中的文件也没有被混淆。我也尝试手动运行 Proguard,但我无法让它输出原始 .java 文件(可以被另一个项目作为库引用)而不是 .class 文件。

如果有人有任何关于如何混淆 apklib / Android 库中的 java 代码的信息,我将不胜感激。此外,了解是否根本无法创建混淆的 andoroid 库也将非常有帮助。

非常感谢您的帮助。

最好的,凯文

4

1 回答 1

0

根据您设置 android maven 插件的 proguard 目标的方式,您很可能会创建一个混淆的 apklib。但是我自己没有试过。请记住,proguard 可能会混淆为辅助工件,而不是主 apklib。

您还应该记住,如果您混淆了库,您的用户将不得不使用经过混淆的方法名称......这会违背分发的目的,并且会使其非常难以使用,因此这可能是一个坏主意。唯一可行的是,如果您在不混淆任何公共方法和类名的情况下混淆所有代码..

于 2012-05-03T20:24:07.537 回答