【问题标题】:Using IntelliJ IDEA to maintain one codebase for free/paid version of app使用 IntelliJ IDEA 为免费/付费版本的应用程序维护一个代码库
【发布时间】:2014-06-03 15:45:17
【问题描述】:

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

我的目标是维护一个代码库,通过“useAds”或“useFeatureX”等简单的布尔值实现广告或付费功能。除此之外,我认为只需要更改包和应用名称即可(?)

我看过一些关于将项目转换为库的旧帖子和其他新的参考文献谈论 Gradle 风格(我从未使用过 Gradle)。前者似乎很复杂,如果它符合我的要求,我不太确定我所读到的内容。后者听起来确实如此,但也许我对 Gradle 的不熟悉使它看起来比实际更令人生畏。

还有其他方法吗?上述方法之一是要走的路吗?安全呢?我正在使用 Proguard,我认为它会从免费版本的最终 apk 中去除未使用的代码/类?

谢谢,抱歉,我一无所知。

【问题讨论】:

  • 我认为无论如何你都应该使用 gradle。几个月前我从 maven 迁移到 gradle,这是个好主意。

标签: android intellij-idea codebase multiple-versions


【解决方案1】:

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

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

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

您应该检查official documentation。我还写了一个simple tutorial,展示了如何使用flavors 来构建应用程序的多个版本。

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

【讨论】:

  • 谢谢,很棒的教程!当然,魔鬼在细节中,现在我必须弄清楚如何将原始项目迁移到 Gradle。另外,我使用的是 IDEA 而不是 Android Studio,但它们应该非常接近(我希望)。
  • 优秀教程;基本上解决了我关于维护免费和付费版本应用程序的 99% 的担忧和问题。尽管在代码中管理特定功能看起来还是有点麻烦;要么需要两个单独的代码文件,要么需要一个标志来打开和关闭特定功能/代码位。
【解决方案2】:

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

http://www.sajmons.com/news/gradlebuildwithfreeandpaidflavors

这里是github上的完整项目

https://github.com/bmuschko/gradle-android-examples/tree/master/product-flavors

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 2015-09-09
    相关资源
    最近更新 更多