gpt4 book ai didi

java - 由于缺少 Java 预处理器,我应该如何隔离非自由包?

转载 作者:行者123 更新时间:2023-11-29 21:14:59 27 4
gpt4 key购买 nike

我正在开发一个 Java Android 应用程序,我使用了一些非免费组件:Google map 、Analytics ......以及许多开源(GPL'ed)包。我希望能够轻松编译两个版本:

  • 完全成熟且非免费 [上传到市场]
  • 有限但已为开源社区授予 GPL

我认为 Eclipse 具有一些预处理功能,但这不是可移植的或标准的。

这种情况下的最佳做法是什么?

最佳答案

What's the best practice for this case?

这个问题有三个答案。

第一个答案是咨询合格的法律顾问以及相关技术人员,以确定您的计划是否符合 GPL 的要求。 IANAL,但如果“成熟的”包含 GPL 组件,你不能替换一些单独的应用程序的源代码,即使某些源代码是相同的,并且声称你遵守 GPL,如果有人请求源代码到“成熟的”应用程序。 StackOverflow 的许可条款讨论是题外话,但如果您有“某某实现是否满足此技术要求(恰好由 GPL 强加)”的问题,请随时在此处提问。

第二个答案是zapl在评论中建议的,就是考虑Gradle for Android .该构建系统中引入的“产品风格”使得拥有一个项目为不同的情况构建不同的应用程序版本变得相对容易,例如:

  • 针对不同的分发 channel (例如,Play Store 与 Amazon AppStore for Android)使用不同的应用内购买 API

  • 使用 ARM 与 x86 NDK 编译的二进制文件

  • 使用不同的广告网络

但是,虽然有多种方法可以让 Eclipse 和 Gradle for Android 和谐相处,但它只适用于不会为不同产品风格提供不同源代码、资源或 list 内容的项目。否则,Eclipse 将不是一个选择,至少在今天是这样。 Android Studio 应该是一个选项,但我还没有尝试使用它来构建产品 flavor 。如果您没有使用 IDE 进行构建,而是一直在使用 Ant,那么 Gradle for Android 目前几乎支持 Ant 功能的超集,即使它(和 Android Studio)目前仍处于预发布阶段。

在没有适用于 Android 的 Gradle 的情况下,您可以将通用代码放在一个 Android 库项目中,并从两个应用程序使用该库项目。

不过,还是要首先关注符合许可条款的解决方案,然后再确定实现该解决方案的方式。

关于java - 由于缺少 Java 预处理器,我应该如何隔离非自由包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661216/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com