良好做法 Gradle 味道 Class
Good Practice Gradle Flavors With Class
我正在寻找有关我应该如何使用 gradle 风格来为 Android 应用程序定义我的行为的信息。
Let's say I want to start a new activity in my flavor1 and not in
my flavor2.
由于 gradle 不会相互覆盖 classes,
我必须在每个口味中定义Activity
app/src/
|-> flavor1/java/<package>/Activity.java
|-> flavor2/java/<package>/Activity.java
|-> main/java/<package>
或者,在我的主文件夹中定义它并在常量 class 中使用枚举 return 如果我在我的 flavor1 或我的 flavor2
app/src/
|-> flavor1/java/<package>/Constant.java
|-> flavor2/java/<package>/Constant.java
|-> main/java/<package>/Activity.java
我的猜测是我必须混合使用两种解决方案:
- 如果我想在 flavor1 中创建一个独特的 activity,我必须在 flavor2 中创建相同的 class,也许只是
throw RuntimeException("stub!")
- 如果我想从
main
调用这个 activity,我必须使用类似 if (Constant.getFlavor() == flavor1)
的东西
在我看来,这是使用 gradle 口味的最酷方式。但我想确定在最终实施之前没有其他最好的方法来处理它。
有没有人写过关于它的东西或者想发表自己的意见?我很想读你!
提前致谢!
您可以在每种风格上放置不同的 AndroidManifest 文件。例如,您可以在 flavor1 中定义(让我们称之为)可选 Activity,在 flavor1 中定义扩展可选 Activity 的 Class,您就完成了!请注意,flavor AndroidManifest 文件必须仅指定与主要 AndroidManifest 不同的内容:在这种情况下,您应该仅包含 <activity/>
(当然在空的 <application/>
中)
如果您想避免 if (Constant.getFlavor() == flavor1)
,您可以创建一个工厂 class,然后 returns 该口味的正确意图 Activity。然后在每种口味中覆盖它。这避免了 if 语句污染代码。
我正在寻找有关我应该如何使用 gradle 风格来为 Android 应用程序定义我的行为的信息。
Let's say I want to start a new activity in my flavor1 and not in my flavor2.
由于 gradle 不会相互覆盖 classes,
我必须在每个口味中定义Activity
app/src/
|-> flavor1/java/<package>/Activity.java
|-> flavor2/java/<package>/Activity.java
|-> main/java/<package>
或者,在我的主文件夹中定义它并在常量 class 中使用枚举 return 如果我在我的 flavor1 或我的 flavor2
app/src/
|-> flavor1/java/<package>/Constant.java
|-> flavor2/java/<package>/Constant.java
|-> main/java/<package>/Activity.java
我的猜测是我必须混合使用两种解决方案:
- 如果我想在 flavor1 中创建一个独特的 activity,我必须在 flavor2 中创建相同的 class,也许只是
throw RuntimeException("stub!")
- 如果我想从
main
调用这个 activity,我必须使用类似if (Constant.getFlavor() == flavor1)
的东西
在我看来,这是使用 gradle 口味的最酷方式。但我想确定在最终实施之前没有其他最好的方法来处理它。
有没有人写过关于它的东西或者想发表自己的意见?我很想读你!
提前致谢!
您可以在每种风格上放置不同的 AndroidManifest 文件。例如,您可以在 flavor1 中定义(让我们称之为)可选 Activity,在 flavor1 中定义扩展可选 Activity 的 Class,您就完成了!请注意,flavor AndroidManifest 文件必须仅指定与主要 AndroidManifest 不同的内容:在这种情况下,您应该仅包含 <activity/>
(当然在空的 <application/>
中)
如果您想避免 if (Constant.getFlavor() == flavor1)
,您可以创建一个工厂 class,然后 returns 该口味的正确意图 Activity。然后在每种口味中覆盖它。这避免了 if 语句污染代码。