如何在不暴露源代码的情况下将 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