Android 使用IntelliJ IDEA为免费/付费版本的应用程序维护一个代码库

Android 使用IntelliJ IDEA为免费/付费版本的应用程序维护一个代码库,android,intellij-idea,codebase,multiple-versions,Android,Intellij Idea,Codebase,Multiple Versions,我需要一些见解/建议/建议(尽可能详细)来实现我的android应用程序的免费付费版本。我使用IntelliJ IDEA与SVN进行开发 我的目标是维护一个代码库,它通过简单的布尔值(如“useAds”或“useFeatureX”)实现广告或付费功能。除此之外,我认为需要做的就是改变软件包和应用程序名称(?) 我看过一些关于将项目转换为库的老帖子,以及其他关于Gradle风格的新参考文献(我从未使用过Gradle)。前者似乎很复杂,从我所读到的内容来看,我不太确定它是否符合我的要求。后者听起来像

我需要一些见解/建议/建议(尽可能详细)来实现我的android应用程序的免费付费版本。我使用IntelliJ IDEA与SVN进行开发

我的目标是维护一个代码库,它通过简单的布尔值(如“useAds”或“useFeatureX”)实现广告或付费功能。除此之外,我认为需要做的就是改变软件包和应用程序名称(?)

我看过一些关于将项目转换为库的老帖子,以及其他关于Gradle风格的新参考文献(我从未使用过Gradle)。前者似乎很复杂,从我所读到的内容来看,我不太确定它是否符合我的要求。后者听起来像是这样,但也许我对Gradle的不熟悉使它看起来更令人畏惧

还有其他方法吗?上面的方法之一是正确的吗?那么安全呢?我使用的是Proguard,我认为它从免费版本的最终apk中去掉了未使用的代码/类


谢谢,很抱歉没有俱乐部。

多亏了基于gradle的新构建系统(NBS),您可以使用口味。 我会给你一个教程的链接。只需使用谷歌查找更多详细信息

下面是github的完整项目


使用gradle productFlavors是实现这一目标的更简单方法。它将允许您从单个代码库构建两个版本

关于安全性,虽然Proguard可以帮助您从其中一个版本中删除未使用的类,但您可以自己使用flavors,因为如果您需要代码存在于一个版本中,而不存在于另一个版本中,您实际上可以为每个flavor提供单独的代码文件

对于要使用的标志,可以使用
buildConfigField
非常轻松地将它们添加到gradle构建文件中

你应该检查一下房间。我还编写了一个演示如何使用flavors构建应用程序的多个版本的程序


我想最好先了解一下gradle和android插件,构建简单的应用程序,然后开始深入研究它的扩展功能和配置。

我认为你还是应该使用gradle。几个月前我从maven迁移到gradle,这是个好主意。谢谢,很棒的教程!当然,问题在于细节,现在我必须弄清楚如何将原始项目迁移到Gradle。此外,我使用的是IDEA,而不是Android studio,但它们应该非常接近(我希望如此);基本上解决了我99%的关于维护应用程序免费和付费版本的担忧和问题。虽然在代码中管理特定的特性看起来仍然有点麻烦;或者需要两个单独的代码文件,或者需要一个标志来打开和关闭特定的功能/代码位。