2012-07-21 96 views
1

我建立在Eclipse的Android應用程序,並具有基於相同的代碼庫,一個「倫敦」一個和「英國」一兩個類似的應用程序。要構建每個應用程序,我只需重命名主包並在Application類中更改一個靜態int。該應用程序使用此INT的值,以顯示右UI,限制用戶行爲等有條件包括安卓(Eclipse的)資源基於項目

我有兩個圖標文件,一個用於每個應用程序:

  • RES /抽拉-HDPI/icon_london.png
  • RES /提拉 - 華電國際/ icon_uk.png

有什麼辦法來有條件地使用取決於某種項目配置設置的應用程序和活動正確的圖標文件?否則,項目維護會增加,因爲每次代碼庫變化時我都必須更改清單。

<application 
    android:icon="@drawable/icon_london" 
    ... 
    > 

    <activity 
     android:name="com.company.MainActivity" 
     android:logo="@drawable/icon_london" 
     > 
    </activity> 

...等等,對於所有的活動。

回答

1

我也有類似的問題,並在構建我custon Ant腳本來構建應用程序結束了。您可以運行宏或正則表達式來分配一個資源或另一個資源。

編輯:

首先,添加的build.xml到項目:

打開一個命令提示符並導航到你的項目的目錄:

android update project --path 

然後,可以覆蓋現有的build.xml,如下所示。

注:此Ant腳本只是一個例子,我沒有測試它:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Example" default="help"> 
    <property file="local.properties" /> 
    <property file="ant.properties" /> 

    <loadproperties srcFile="project.properties" /> 

    <!-- quick check on sdk.dir --> 
    <fail 
      message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var" 
      unless="sdk.dir"/> 

    <!-- IMPORT ANT?S BUILD.XML --> 
    <import file="${sdk.dir}/tools/ant/build.xml" /> 

    <property name="app.icon"  value="${icon}" /> 
    <property name="icon.file"  location="res/drawable/icon.png" /> 

    <target name="test-release"> 
     <antcall target="test-pre-release" /> 
     <antcall target="release" /> 
    </target> 

    <target name="test-pre-release"> 
     <copy file="${app.icon}" tofile="${icon.file}" overwrite="true"/> 
    </target> 

</project> 

然後,構建該項目使用自定義圖標,打開命令提示符,然後轉到項目目錄:

CALL ant -f build.xml test-release -Dicon=path/to/your/icon.png 

如上所述,這是一個非常基本的例子。要建立一個良好的腳本,你必須瞭解一點的Ant語法,但它並不難。

+0

我以前從未使用過螞蟻;可以把它集成到Eclipse的工作流程,或者我需要用我想要重新構建和分發每次命令行? – 2012-07-21 14:43:10

+0

螞蟻來構建應用程序。您可以檢查SDK位置內的現有Ant腳本(例如... \ android-sdk \ tools \ ant \ build.xml)。而且,爲了建立你自己的...有很多教程可以解釋這個過程。例如。 http://www.enterra-inc.com/techzone/using_ant_android_applications_building/ – 2012-07-21 14:47:39

+0

您能否在您的答案中添加一個Ant腳本示例以說明您是如何實現這一目標的? – 2012-07-21 14:59:01