java - 混淆 Android 库项目/apklib

标签 java android maven proguard

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

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

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

非常感谢您的帮助。

最好, 凯文

最佳答案

根据您如何设置 android maven 插件的 proguard 目标,您很可能会创建一个混淆的 apklib。不过我自己还没有尝试过。请记住,proguard 可能会混淆到次要 Artifact 中,而不是混淆到主 apklib 中。

您还应该记住,如果您混淆了库,您的用户将不得不使用混淆的方法名称...这有点违背了发行版的目的,并且将使其很难使用,因此它可能是一个馊主意。唯一有效的是,如果您混淆所有代码而不混淆任何公共(public)方法和类名称..

关于java - 混淆 Android 库项目/apklib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438726/

相关文章:

android - 如何在sqlite android中检索下一个值

java - 插件依赖的Maven依赖管理

java - 从 IntelliJ IDEA 运行 WebLogic 时找不到 `weblogic.Server`

java - 具有非 SpringBoot 托管构造函数参数的 Autowiring 类

java - 将按距离过滤集合的 Java 7 代码转换为流

java - 用不同的值替换文本文件的第二列(正则表达式)

android - 以编程方式从 Android 的 Url 获取证书信息

android - Volley 请求失败,如果字符串的长度很长

java - 如何编写 dockerfile 以在包含 jdk 的现有 spring boot 项目上添加 maven 构建

java - 如何使用套接字编程将消息发送到另一个android手机?