Android Studio 导出 library\SDK 不公开代码
Android Studio export library\SDK without exposing the code
我有一个 Android Studio 项目,我在其中构建了一个 SDK 并将其导出到 Jcenter,这样客户就可以通过添加 1 行 "compile.. " 在他们自己的项目中使用我的 SDK他们的 build.gradle.
到目前为止一切顺利,但我有一个问题,我的客户可以看到他们项目中的所有 SDK 代码。我试图了解在不破坏任何东西的情况下隐藏我的实现的最佳方法。显然 proguard 可能会参与解决方案,但令我惊讶的是,我还没有看到任何 "best practice" 解决方案来实现我想要的。
有什么想法吗?
首先,Bintray 提供的 public jCenter 存储库中的一个库是 OSS(开源软件)。
这是我为保护我的代码所做的工作:
1. 所有代码都使用 Proguard 进行了混淆处理。有一些关于非常具体的 classes 的规则,因此库可以正常工作。
2. 我的组织已经订阅了 Bintray 上的 专业 计划 允许我们 没有 OSS 库。参见 pricing。为此,开发人员需要添加您的 bintray 存储库和依赖项。如果您愿意,我想您可以像 Fabric/Twitter 一样使用 Maven 拥有自己的代码存储库,并自己托管您的库。
不要忘记 class 文件总是可以被 反编译 所以你无法真正阻止这种情况。
作为个人说明, 如果您打算通过您的图书馆赚钱,不妨考虑一个 OSS 图书馆和一个像 Parse.com 这样的 Prenium 服务器端服务,其中client library是OSS。
我有一个 Android Studio 项目,我在其中构建了一个 SDK 并将其导出到 Jcenter,这样客户就可以通过添加 1 行 "compile.. " 在他们自己的项目中使用我的 SDK他们的 build.gradle.
到目前为止一切顺利,但我有一个问题,我的客户可以看到他们项目中的所有 SDK 代码。我试图了解在不破坏任何东西的情况下隐藏我的实现的最佳方法。显然 proguard 可能会参与解决方案,但令我惊讶的是,我还没有看到任何 "best practice" 解决方案来实现我想要的。
有什么想法吗?
首先,Bintray 提供的 public jCenter 存储库中的一个库是 OSS(开源软件)。
这是我为保护我的代码所做的工作:
1. 所有代码都使用 Proguard 进行了混淆处理。有一些关于非常具体的 classes 的规则,因此库可以正常工作。
2. 我的组织已经订阅了 Bintray 上的 专业 计划 允许我们 没有 OSS 库。参见 pricing。为此,开发人员需要添加您的 bintray 存储库和依赖项。如果您愿意,我想您可以像 Fabric/Twitter 一样使用 Maven 拥有自己的代码存储库,并自己托管您的库。
不要忘记 class 文件总是可以被 反编译 所以你无法真正阻止这种情况。
作为个人说明, 如果您打算通过您的图书馆赚钱,不妨考虑一个 OSS 图书馆和一个像 Parse.com 这样的 Prenium 服务器端服务,其中client library是OSS。