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 true
的 gradle
设置。
运行./gradlew assembleflavorRelease
【讨论】:
以上是关于android库项目混淆的主要内容,如果未能解决你的问题,请参考以下文章