gpt4 book ai didi

android - 如何有效地编写针对同一私有(private)库的不同版本的具有不同构建风格的 Android 应用程序

转载 作者:行者123 更新时间:2023-12-03 06:02:55 25 4
gpt4 key购买 nike

我正在编写一个可以构建多种风格的应用程序(今天只有 3 个,从长远来看可能是 20-30 个)。

该应用程序现在是一个简单的 git 存储库中的一个大型 Android 项目。它有几个特性(大部分被隔离在他们自己的 java 包中),今天大约有 4 或 5 个,从长远来看,我认为这不会超过十几个。

为简单起见,假设该应用程序有两种口味,口味 1 和口味 2,并提供三个功能,
功能 1 功能 2 和功能 3。

现在 Flavor A 使用所有功能,Flavor B 使用 Feature 1&2。此设置由服务器配置在外部控制,但它实际上是一个预先众所周知的业务决策(即在构建时),并且可以将功能 3 的代码从 Flavor B 构建中剥离出来,而不会有太多麻烦:通过隔离库项目中的功能 3 并仅将其包含在应用程序的 build.gradle 中以用于 Flavor A。

问题是,除了剥离未使用功能的代码外,我还有以下要求: flavor 必须能够使用特定版本的功能。例如,Flavor A 将使用 Feature 2 v1.0,Flavor B 将不得不使用 Feature 2 v1.1。我们可以假设这些特征不相互依赖。

flavor A:

  • 功能 1 v1.0
  • 功能 2 v1.0
  • 功能 3 v1.0

  • flavor B:
  • 功能 1 v1.0
  • 功能 2 v1.1

  • 我想让事情尽可能简单。我看到的解决方案是在他们的 git 存储库中隔离功能,对它们进行版本化并将它们推送到诸如 Nexus 之类的私有(private)存储库中,并在应用程序的 build.gradle 文件中包含每种风格所需的 aar。 flavor A 取决于功能 2 v1.0, flavor B 取决于功能 2 v1.1。

    我需要实际设置它以查看这是否可行,但我已经预料到一个功能的繁琐开发阶段。当我需要在主应用程序的上下文中测试我目前正在开发的功能并在 Nexus 服务器上引用 aar 时,我应该如何测试它?我是否必须在每次代码更改时推送一个虚拟版本(我最终会得到多少个版本?)我是否应该在开发时注释掉 aar 依赖项并引用本地库文件夹,以便它使用我的本地代码?两个开发人员可以开发同一个功能吗?

    更一般地说,这是好方法还是我有更好的选择?

    最佳答案

    我会在分支和功能中组织它。 flavor 应该用于不同的构建类型,例如 DEV、QA、PROD 等...这意味着您将拥有例如 分公司特色 1 和 2,您可以在所有构建类型中运行这些功能。
    所以,所有分支机构 可以全部运行构建类型 , 特点 共轭将在 中创建分支机构 .

    分支 A:
    - F1
    - F2

    B分公司:
    - F1
    - F3

    等等...

    希望能帮助到你。

    关于android - 如何有效地编写针对同一私有(private)库的不同版本的具有不同构建风格的 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40467843/

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