【问题标题】:Android Studio export library\SDK without exposing the codeAndroid Studio 导出库\SDK 不暴露代码
【发布时间】:2015-10-19 11:47:55
【问题描述】:
我有一个 Android Studio 项目,我在其中构建了一个 SDK 并将其导出到 Jcenter,这样客户就可以通过在他们的 build.gradle 中添加 1 行“compile..”来在他们自己的项目中使用我的 SDK。
到目前为止一切顺利,但我确实有一个问题,我的客户可以看到他们项目中的所有 SDK 代码。我试图了解在不破坏任何东西的情况下隐藏我的实现的最佳方法是什么。显然 proguard 可能会参与解决方案,但令我惊讶的是,我还没有看到任何“最佳实践”解决方案来实现我想要的。
有什么想法吗?
【问题讨论】:
标签:
android
android-studio
gradle
sdk
android-proguard
【解决方案1】:
最初,Bintray 提供的公共 jCenter 存储库中的库是 OSS(开源软件)。
这是我为保护我的代码所做的:
1.所有代码都用 Proguard 进行了混淆。非常具体的类有一些规则,因此库可以正常工作。
2.我的组织已经订阅了 Bintray 的 Professional 计划,让我们没有 OSS 库。见pricing。这样做,开发人员需要在依赖项之后添加您的 bintray 存储库。如果您愿意,我想您可以像 Fabric/Twitter 一样使用 maven 拥有自己的代码存储库,并自己托管您的库。
不要忘记类文件总是可以被反编译,所以你无法真正防止这种情况发生。
作为个人说明,如果您打算通过您的库赚钱,不妨考虑一个 OSS 库和像 Parse.com 这样的高级服务器端服务,其中client library 是 OSS。