Android - 如何拥有第二套资源?

Android - How to have second set of resources?

我有一个应用程序必须为两个不同的客户打上烙印。应用程序设计、代码、用法和流程是相同的。目前,品牌纯粹是改变 android 资源以使用不同的颜色和字体。他们也可能会使用不同的可绘制对象和布局。还有一些资源对于两个品牌都是相同的。

目前,我们只有两个不同的项目,它们具有重复的代码文件和不同的资源文件集。

是否可以在一个项目中包含所有资源(公共资源、品牌 1 资源和品牌 2 资源)并有一个编译时标志来决定使用哪一组资源?

编辑: 我正在寻找类似于基于屏幕尺寸和密度的不同布局和资源集的东西。

您可以使用 build variants 实现此目的。您只需为每个客户端创建两种风格,在适当的 sourceSets 中更改需要更改的任何资源,然后选择您的风格和构建。

看看this。我正在通读它,关于如何提供替代资源,它也可能对您有所帮助。

谢谢,

使用 Android 工作室。 在 android 工作室中,您将在项目中有 flavor 文件夹。 可以根据口味放资源。 示例:

Project-
      flavor-
             demo-
             |   src-
             |      res-
             |         drawable-
             |                ic_launcher.png
             brand1-
             |    src-
             |      res-
             |         drawable-
             |                ic_launcher.png
             brand2-
                 src-
                   res-
                      drawable-
                             ic_launcher.png

并在您的 gradle 文件中这样指定。

 android{
 ....
 productFlavors {
        demo {
            applicationId "com.example.app.demo"
            versionName "1.0.3"
        }
        brand1 {
            applicationId "com.example.app.brand1"
            versionName "1.0"
        }
         brand2 {
                applicationId "com.example.app.brand2"
                versionName "1.4"
            }
    }
 ...}

您可以选择 android 左侧的 Build Variant studio.It 将根据您选择的风格选择资源。

请注意:AndroidStudio 运行缓慢。你应该至少有 8gb 内存。

Read this documentaion