2015-08-27 132 views
4

我有一個應用程序必須爲兩個不同的客戶打上烙印。應用程序的設計,代碼,用法和流程完全相同。品牌化是純粹改變Android資源以使用不同的顏色和字體,目前。也有可能他們會使用不同的繪圖和佈局。也有一些資源對於兩個品牌都是相同的。Android - 如何獲得第二組資源?

目前,我們只有兩個不同的項目,其中包含重複的代碼文件,但具有不同的資源文件集。

是否有可能擁有一個包含所有資源(公共資源,品牌1資源和品牌2資源)的項目並且有編譯時間標誌來決定使用哪組資源?

編輯: 我正在尋找類似的東西,根據屏幕大小和密度有不同的佈局和資源集合。

+2

解決之道在於搖籃。像這樣的東西可能會幫助你http://stackoverflow.com/questions/17103601/use-different-resources-for-different-application-flavors-using-gradle – Sharj

+1

這就是'Android Studio'提供的。 –

+0

好吧,那很簡單,正是我想要的。謝謝你! –

回答

4

使用Android工作室。 在android studio中,您將在項目中有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 studio左邊選擇Build Variant。它會根據您選擇的味道來選取資源。

請注意:Android Studio速度很慢。你應該有至少8GB的內存。

Read this documentaion

2

您可以使用build variants來實現此目的。您只需爲每個客戶端創建兩種風格,在適當的sourceSets中更改需要更改的資源,然後選擇您的風格&版本。

0

看看this。我正在閱讀它,它也可能對您如何提供備用資源有所幫助。

謝謝,