如何在不暴露源代码的情况下将 SDK 分发为 AAR 文件?

Posted

技术标签:

【中文标题】如何在不暴露源代码的情况下将 SDK 分发为 AAR 文件?【英文标题】:How to distribute a SDK as AAR file without exposing the source code? 【发布时间】:2016-05-23 12:06:32 【问题描述】:

我想将 SDK 分发给最终开发人员,但我不想分享我的代码。我使用 AAR 文件来共享我的 SDK (android Archive Library (aar) vs standard jar)。但是有可能其他人可以查看我的类文件。如何避免这种情况?请帮助我们。

注意: 我已经查看了这个“Android - Need a way to create the library(.aar file) without source code”,但它并没有解决我的问题。

【问题讨论】:

【参考方案1】:

Proguard 会削减未使用的类。库是独立的产品,并且有一些特定的入口点,不应被混淆。所以你需要添加规则来保持这个入口点。规则如下所示:

-keep class packagename public *;

但是,Proguard 但不会加密字符串。

Dexguard 是一款付费工具,包含字符串加密等功能。

完整比较请参见此图表:https://www.saikoa.com/comparison-proguard-and-dexguard

【讨论】:

我们需要显示方法名称但不显示方法定义。使用 Dexguard 时,方法名和方法定义均不显示。

以上是关于如何在不暴露源代码的情况下将 SDK 分发为 AAR 文件?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不使用 winformshost 的情况下将 Lync SDK 对话停靠在 WPF 上吗?

在不使用 PayPal 按钮的情况下将 PayPal .NET SDK 集成到网站中

如何在不丢失信息的情况下将因子转换为整数\数字?

在没有 App Store 的情况下将 App 分发到多个 iPad

Jackson 如何在不强制转换的情况下将 JsonNode 转换为 ArrayNode?

如何在不破坏单词的情况下将字符串拆分为行?