从相同的代码生成略有不同的APK

Ric*_*rdo 2 android amazon-appstore android-studio android-productflavors

我开发了一款使用Parsepush notifications(GCM Google Cloud Messaging)的小游戏.但是,当我尝试将我的应用程序上传到亚马逊商店时,他们说它不会在某些设备上发布,因为它使用的是GCM.

所以,解决方案很简单,只需删除即可notifications.我遇到的问题是我想尽可能地自动生成apk代.在iOS下(我是iOS开发人员,Android新手),我只创建2个目标并使用DEFINE我可以根据目标修改代码.我想有类似的东西,所以我manifest在亚马逊版本中使用另一个,当然我删除了推送代码.

使用时我该怎么做Android Studio?我怀疑我必须使用gradle或者模块的概念,因为在创建signed apkAndroid Studio我必须选择“app” module.

你有什么想法,建议或链接吗?谢谢.

Ale*_*ker 7

您可以使用产品口味来实现这一目标.每个产品风味都可以拥有自己的AndroidManifest,每个风味的清单将在编译时与主应用程序清单合并.请参阅文档的构建变体部分.

例如,您可以定义以下产品风格

productFlavors {
    amazon
    googleplay
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以设置以下清单文件

src/main/AndroidManifest.xml
src/amazon/AndroidManifest.xml
src/googleplay/AndroidManifest.xml <-- put GCM permissions here
Run Code Online (Sandbox Code Playgroud)

您还可以将所有Google Play服务代码和依赖项放入googleplay风格中,例如:

dependencies {
    googleplayCompile 'com.google.android.gms:play-services-location:7.0.0'
}
Run Code Online (Sandbox Code Playgroud)