gpt4 book ai didi

android - 我可以在库模块中为不同的应用程序模块使用不同的类(使用风格)吗?

转载 作者:行者123 更新时间:2023-11-29 02:18:38 24 4
gpt4 key购买 nike

我有两个应用程序:应用程序模块 A应用程序模块 B。他们都使用Library Module X

Library Module X 内部,我有一些不同的行为,具体取决于哪个应用程序正在使用该库。我考虑了三种替代方案来实现这一目标。

硬编码提及应用程序。 someClass 将由应用程序注入(inject)或仅检查包。 (我认为最糟糕的一个):

if (someClass.isApplicationA()) {
doThis()
} else {
doThat()
}

硬编码提及将要做的事情。 someClass 将由应用程序注入(inject)。 (我也不太喜欢):

if (someClass.shouldDoThis()) {
doThis()
} else {
doThat()
}

3º 使用口味。我会为 Application Module A 定义一个 flavor A,为 Application Module B 定义一个 flavor B。在 Library Module X 中,我会定义这两种风格。所以我会把自定义代码放在一些特定的类中,每个类都有不同的版本。

customClassByFlavor.justDoIt()

我到处都只看到 flavors 被用于单个应用程序。这是正确的用法吗?

最佳答案

实现这一点的优雅方法是

  1. 要求应用在其 list 中指定标识符/ key
  2. 要求应用在其 build.gradle 文件中指定一个变量
     defaultConfig {
resValue "string", "identifier", "identifierConstant"
}

在你的应用程序中使用变量,就像你访问一个字符串常量一样

    context.getString(R.string.identifier);
  1. 从build.gradle文件中默认的applicationId中选择应用的包名
   defaultConfig {
applicationId "com.google.example"
}

关于android - 我可以在库模块中为不同的应用程序模块使用不同的类(使用风格)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57992947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com