编译到不同的目标Android

时间:2013-07-30 13:58:49

标签: android target

我们的应用程序是从多个市场分发的,作为开发人员,我需要为每个目标运行不同的代码,例如:

if (target == ROCK) do A;
else if (target == PAPER) do B; 

等等,ADT / Eclipse是否支持这些东西?

我应该怎么做呢?

3 个答案:

答案 0 :(得分:1)

您可以在res / values文件夹中设置一个参数(例如strings.xml中的字符串)来检查。该字符串可以与目标一起参数化(例如res / values-480x800中的屏幕尺寸)。

答案 1 :(得分:1)

根据您的需要,有两种方法:

  1. 多个APK,每个都有硬编码选项。
  2. 有条件执行代码的单个APK。
  3. 对于方法1,您可以在gradle / Android Studio中使用build flavors(我不认为ADT支持此功能)。您基本上可以构建单个APK的多个版本,每个版本中选择不同的源文件。然后,在Play商店中,您可以根据您的标准分发这些不同的文件。

    对于方法2,您有几个选择:

    1. 对于资源,您可以provide different files取决于语言和地区(或MCC)。
    2. 代码,getResources().getConfiguration().locale.getCountry()获取设备所在国家/地区{/ 3}}获取MCC

答案 2 :(得分:0)

一旦我遇到类似的J2ME开发问题,I just developed preprocessor,您可以尝试将其用于Android项目