Android应用程序有两个包

时间:2015-10-01 09:13:04

标签: android in-app-purchase android-manifest android-package-managers

我有两个版本的应用程序:premium和free。现在对我来说,高级版的功能在验证后才起作用:

  if (isPremiumVersion){
     //to do premium fuctions
  }.

但我不认为这是好的基调。如何划分这两个版本,它们是相互独立的?只有在应用程序开始时才进行验证,然后已经,例如,用某个包和类启动某个清单文件。不幸的是,最终找不到材料,做得更准确。

1 个答案:

答案 0 :(得分:1)

您需要的是Product flavors

您可以在build.gradle中定义它们:

android {
    ....

    productFlavors {
        free {
            applicationId 'com.myapp.free'
        }

        premium {
            applicationId 'com.myapp.premium'
        }
    }
}

对于每种产品风格,您可以通过在app src目录中创建名称为flavor的目录来创建自己的源代码集,这样您的应用结构就像:

src/
  main/
  free/
  premium/

您可以在风味源集中添加自定义的AndroidManifest.xml,资源和来源,它们将与main来源集合合并。

您应该仔细阅读上面提到的链接中的官方文档。我在这里描述了更多的可能性和细节。