android库项目混淆

Posted

技术标签:

【中文标题】android库项目混淆【英文标题】:android library project obfuscation 【发布时间】:2013-07-26 05:44:18 【问题描述】:

您好,我开发了一个 android 库,现在我想对其进行混淆以便重新分发。我使用 eclipse 和 android 版本 4.1.2 开发我的库。我尝试使用 eclipse 和 pro-guard 进行混淆。我确实导出并将proguard.config = proguard-project.text 放入project-properties,但它没有生成任何jar 文件。它向我显示结果,因为它不允许库项目。

所以我不知道如何混淆 android 库项目。我需要有关如何混淆 android 库项目的帮助。

需要帮助谢谢。

【问题讨论】:

【参考方案1】:

Android SDK 不会将 ProGuard 应用于库项目;它仅将 ProGuard 应用于最终应用程序(包括它们的库)。后者在收缩、优化和混淆方面更有效,因为它可以处理更大的代码体,并且不需要保留库的公共 API。

如果您想将库作为最终产品分发,您可以对其进行后处理,如 ProGuard 手册 > 示例 > A typical library 中所述。

另外,DexGuard,ProGuard 的 Android 商业兄弟,也可以开箱即用地处理库项目。

(我是 ProGuard 和 DexGuard 的开发者)

【讨论】:

该网站是否适合您?每次我尝试单击手动 > 示例时,它都会将我重定向到网站的主页/主页。另外 - 感谢您在 ProGuard 上所做的所有工作。很棒的工具。 @Eggman87 ProGuard 4.10 版的更新网页在 Chrome 中无法正常运行。我现在已经修好了它们。确保清理缓存。请注意,文档也包含在 ProGuard 发行版中。 感谢@Eric Lafortune。它现在可以工作了,感谢您注意发行版中的文档。 有人可以分享一个模块的 gradle 配置以导出为 proguarded 库吗? 我认为他们现在支持 aar 项目(库项目)的 proguard,只需在 build.gradle 中指定 minifyEnabled true (AS2.3.1+buildToolsVersion "25.0.2")【参考方案2】:

为了混淆你的库,你需要做的是:

    确保 lib 模块状态 minifyEnabled truegradle 设置。

    运行./gradlew assembleflavorRelease

【讨论】:

以上是关于android库项目混淆的主要内容,如果未能解决你的问题,请参考以下文章

Android 库项目:混淆并保留资源

如何用 Eclipse 混淆 Android 库项目?

Proguard 可以混淆 Android 库项目 (APKLIB) 吗?

使用 ProGuard 混淆 Android 库项目源代码

Android代码混淆后打包报错问题,第三方库导致。

Android代码混淆后打包报错问题,第三方库导致。