我有一个Android Studio项目,我在其中构建SDK并将其导出到Jcenter,以便客户端能够在他们自己的项目中使用我的SDK,添加1行"编译.."他们的build.gradle。
到目前为止一切顺利,但我确实有一个问题,我的客户可以看到他们项目中的所有SDK代码。我试图理解隐藏我的实现的最佳方法是什么,而不会破坏任何东西。显然,proguard可能会参与解决方案,但令我惊讶的是,我还没有看到任何"最佳实践"解决方案实现我想要的。
有什么想法?
答案 0 :(得分:3)
首先, Bintray 提供的公共jCenter存储库上的库是OSS(开源软件)。
这就是我为保护我的代码所做的工作:
1。所有代码使用Proguard进行模糊处理。对于非常具体的类有一些规则,因此库可以正常工作。
2。我的组织订阅了关于Bintray的 Professional 计划,允许我们没有OSS库。见pricing。这样做,开发人员将需要添加您的bintray repo和依赖项之后。如果您愿意,我猜您可以使用maven作为Fabric / Twitter来拥有自己的代码存储库,并自己托管您的库。
不要忘记一个类文件总是 Decompiled ,所以你无法真正阻止它。
作为个人笔记,如果您打算通过图书馆赚钱,可以考虑一下OSS库和像Parse.com这样的prenium服务器端服务,其中client library是OSS 。