Android 如何在一个应用程序的基础上发布多个应用程序

Android 如何在一个应用程序的基础上发布多个应用程序,android,android-studio,gradle,Android,Android Studio,Gradle,我有一个客户端android应用程序,可以使用不同的基本链接。它应该是不同的应用程序和不同的软件包。但是它处理请求\响应的方式是相同的。我需要更改代码中带有链接的一行,但保留所有代码基。我该怎么做 我知道图书馆的路,但不适合我。我还听说了一些不同口味的东西。你要找的是gradle产品口味 productFlavors { pro { applicationId = "com.example.my.pkg.pro" } free { app

我有一个客户端android应用程序,可以使用不同的基本链接。它应该是不同的应用程序和不同的软件包。但是它处理请求\响应的方式是相同的。我需要更改代码中带有链接的一行,但保留所有代码基。我该怎么做


我知道图书馆的路,但不适合我。我还听说了一些不同口味的东西。

你要找的是gradle产品口味

 productFlavors {
    pro {
        applicationId = "com.example.my.pkg.pro"
    }
    free {
        applicationId = "com.example.my.pkg.free"
    }
 }


定义不同的productFlavors,您可以为每个productFlavors添加不同的strings.xml文件。在构建过程中,正确的一个将放在apk文件中。

如果您使用Android Studio或其他gradle构建器,您可以使用productt Flavor

在build.gradle中,您必须定义如下内容:

productFlavors {
        Flav2{
            applicationId = "com.example.flav1"
        }

        Flav1{
            applicationId = "com.example.flav2"
        }
    }
然后,您必须使用常量创建一个类。比如说

package com.example.const;
public class Blabla
{
  public static final String LINK="";
}
然后,对于src文件夹中的每个味道,您必须使用每个味道的名称创建目录

在每个Flav文件夹中,您必须将要替换的文件放在不同的风格中(例如,out Blabla类)

所以最后你应该得到这样的东西

src/main/java/
stc/Flav1/java/com/example/const/Blabla.java
src/Flav2/java/com/example/const/Blabla.java
每个Blabla类都应该在其内部有特定的链接

在您的“常规”项目中,您只需使用

import com.example.cont.Blabla;
并针对您想要的当前口味使用const-specific

然后你就可以用它来制造特定的味道

grable clean assembleeraseflav1


也许答案有点混乱,但如果你有更多问题,请随意提问:)

你可以通过单个应用程序的不同口味来实现这一点(需要在项目中为口味设置gradle文件)。 使用不同的风格,您可以定义不同的字符串文件和源代码(系统将根据风格从不同的文件夹中获取文件)。
查看开发者协会

还有一个问题,我使用androidannotations,而apt插件不支持多种风格=\