我開發了一個分發給不同客戶的應用程序。問題是隻有我使用的圖像和其他資源是不同的。我目前正在做的是,我替換特定於客戶端的資源(圖像和文本)並構建apk。Android在創建apk時選擇資產
有沒有辦法,我可以單獨存儲所有資源爲每個客戶端並創建一個構建腳本什麼的,這樣我可以選擇特定的客戶端在生成過程中我生成APK的資源呢?
我開發了一個分發給不同客戶的應用程序。問題是隻有我使用的圖像和其他資源是不同的。我目前正在做的是,我替換特定於客戶端的資源(圖像和文本)並構建apk。Android在創建apk時選擇資產
有沒有辦法,我可以單獨存儲所有資源爲每個客戶端並創建一個構建腳本什麼的,這樣我可以選擇特定的客戶端在生成過程中我生成APK的資源呢?
你可以用這樣的腳本做:
#!/bin/bash
ant clean
CUSTOMER_DIR="./default-customer"
if [[ -e ${CUSTOMER} ]]; then
CUSTOMER_DIR="./${CUSTOMER}"
fi
rm -R ./res/drawables/
mkdir ./res/drawables/
cp ${CUSTOMER_DIR}/drawables/* ./res/drawables/
ant release
如果您遇到這樣的:
./build.sh
從default-customer/drawables/
目錄繪圖資源將被複制到res/drawables
。
如果你喜歡這個運行它:
CUSTOMER=client1 ./build.sh
從client1/drawables/
目錄中的可繪將被放置在res/drawables
。
可以在客戶端1 /繪圖資源/存儲系統上的任何地方? – kAnNaN
一般情況 - 是的。您可以修改'CUSTOMER_DIR =「./$ {CUSTOMER}」'的路徑並將其指向您喜歡的位置。您還可以創建每個客戶端路徑的映射。我只是向你展示了這樣做的概念。 –
的[多的Android應用程序包的apk從單一源代碼文件(可能重複http://stackoverflow.com/questions/7507784/multiple-android-application-package-apk-files-from-single-source-代碼) – 323go
由於這些不同的APK需要不同的軟件包名稱,因此我的建議是將大部分應用程序放入庫項目中,並將特定於客戶端的應用程序/資源包保存爲單獨的項目。一旦gradle「口味」實際上工作,這將更容易。 – 323go
323go - 我還沒有創建任何圖書館項目。你能指導我一個例子嗎? – kAnNaN