由于缺少Java预处理器,我应该如何隔离非免费软件包?
我正在开发一个Java Android应用程序,我使用一些非免费组件:谷歌地图、分析。。以及许多开源(GPL'ed)软件包。我希望能够轻松编译两个版本:由于缺少Java预处理器,我应该如何隔离非免费软件包?,java,android,preprocessor,Java,Android,Preprocessor,我正在开发一个Java Android应用程序,我使用一些非免费组件:谷歌地图、分析。。以及许多开源(GPL'ed)软件包。我希望能够轻松编译两个版本: 完全成熟,非免费[上传到市场] 有限的,但GPL的开放源码社区 我认为Eclipse有一些预处理能力,但这不是可移植的或标准的 这个案例的最佳实践是什么 这个案例的最佳实践是什么 这个问题有三个答案 第一个答案是咨询合格的法律顾问以及相关的技术专家,以确定您的计划是否符合GPL的要求。IANAL,但如果“完全成熟”包含GPL的组件,您不能替
- 完全成熟,非免费[上传到市场]
- 有限的,但GPL的开放源码社区
- 为单独的分销渠道使用单独的应用程序内购买API(例如,Play Store vs.Amazon AppStore for Android)
- 使用ARM与x86 NDK编译的二进制文件
- 使用不同的广告网络
- 等等
不过,还是要首先关注符合许可条款的解决方案,然后确定实施该解决方案的方法。查看新的gradle构建系统。他们说它可以(而且你不必使用Android Studio来使用gradle,它也可以从命令行工作)。谢谢,如果开源组件是MIT或Apache许可的(不是GPL),这会对完整版本产生影响吗?@Tarekeldeb:这是一个许可问题,这是你需要与合格的法律顾问讨论的事情。一般来说,这两个许可证没有“copyleft”规定,因此更容易发布封闭源代码的组合作品。