我正在创建一个非常简单的应用程序,有免费版和付费版,为此我使用了 Android Gradle 插件中很棒的 productFlavors 功能。我了解应该如何配置 build.gradle 文件并编写了它,所以我的构建选项是;
- 自由发布
- 自由调试
- 付费发布
- 付费调试
看起来如下
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.someconfig
}
}
productFlavors {
free {
packageName "com.somepackagename.appfree"
}
paid {
packageName "com.somepackagename.appPaid"
}
}
基本上,我想做的就是限制一些功能并将 AdMod 添加到免费版本中,我该怎么做?我是否要在我的主要 Java 类中添加 if-else 语句来检查它是免费的还是付费的?或者我可以覆盖免费目录中的 java 类吗?我应该怎么做?
最佳答案
您可以在目录结构中对内容进行编码,例如:
src/
main/ # Common source and assets
java/
res/
AndroidManifest.xml
free/ # Source and assets for the free flavour
java/
res/
AndroidManifest.xml
paid/ # Source and assets for the paid flavour
java/
res/
AndroidManifest.xml
特定于一个版本或另一个版本的代码和 Assets 进入特定目录。 list 已合并。您可以使用生成到 BuildConfig.java
中的 FLAVOR
字段作为 if-else 语句的基础。
SourceSets and Dependencies Android-Gradle-Plugin 用户指南的部分对此进行了更详细的解释。
关于java - 如何修改产品口味之间的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368607/