2011-06-01 24 views
11

我有幾十個API密鑰到Facebook和Twitter等多項服務的,什麼是有依靠,如果我想提出一個開發版本與一個臨時搭建與生產建設的按鍵不同的價值標準呢?如何對Android的不同構建環境?

回答

5

您可以使用一個靜態標誌使用它的開關塊來定義你的鑰匙。這適用於帶有兩個或三個替代鍵的簡單項目。

如果你真的有很多,在幾個項目中使用的話,建議你把它們添加到一個輔助類,讓你減少代碼類中的改變。喜歡的東西:

public class BuildHelper { 
    public static final int DEBUG=0; 
    public static final int STAGING=1; 
    public static final int PRODUCTION=2; 

    public static int BUILD; 

    public static String getFbKey() { 
     switch(BUILD) { 
     case DEBUG: return "xxx"; 
     case STAGING: return "yyy"; 
     case PRODUCTION: return "zzz"; 
     } 
     return null; 
    } 
    public static String getTwitterKey() { 
     switch(BUILD) { 
     case DEBUG: return "xxx"; 
     case STAGING: return "yyy"; 
     case PRODUCTION: return "zzz"; 
     } 
     return null; 
    } 
} 

,並用它作爲:

public class YourClass extends Activity { 

    public static String FB_KEY; 
    public static String TWITTER_KEY; 
    //etc. 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    BuildHelper.BUILD=BuildHelper.DEBUG; // or STAGING or PRODUCTION 
    FB_KEY = BuildHelper.getFbKey(); 
    TWITTER_KEY = BuildHelper.getTwitterKey(); 
    //etc. 
    } 
} 
+0

最後我做一個運行時檢查類似這樣的字符串變種 – hunterp 2011-07-13 02:22:29

0

我將讓他們在不同的屬性文件,並根據你在做什麼參考適用的屬性文件中生成腳本/月食類路徑這樣做。

相關問題