我想在Android Studio中创建的同一个项目中为Google Play商店和亚马逊应用商店构建。由于应用内购买API不同,我会在为目标商店创建APK之前进行一些调整。当我从一个目标切换到另一个目标时,如何节省时间。一些手动过程是可以的。以下是谷歌应用商店的gradle源设置。
sourceSets {
main {
manifest.srcFile 'app/src/main/AndroidManifest.xml'
java.srcDirs = ['app/src/main/java']
resources.srcDirs = ['app/src']
aidl.srcDirs = ['app/src/main/aidl']
res.srcDirs = ['app/src/main/res']
assets.srcDirs = ['app/src/assets']
}
答案 0 :(得分:0)
声明两个gradle flavour
,例如googleplay
和amazon
。
productFlavors {
googleplay {
applicationId = '...'
}
amazon {
applicationId = '...'
}
}
对于每个flavour
,Gradle库的依赖关系应该有所不同。
googleplayImplementation "...gp_library..."
amazonImplementation "...amazon_dependency..."
这样,特定于商店的构建将不包含其他商店依赖项类,资源等。
然后声明例如StoreProvider
的接口,它将成为所有商店特定的api调用的输入点。在googleplay
风格源集中,提供StoreProvider
的实现,该实现将调用GooglePlay存储方法。在amazon
中提供StoreProvider
的实现,该实现将调用Amazon store方法。使用链接到StoreProvider
接口的应用程序中的任何地方。如果以这种方式组织应用程序,则您的应用程序将不了解其使用的商店。另外,将来很容易添加另一个商店支持。