2013-07-02 7 views
0

Я хочу использовать Gradle build Android. Существует почти 100 apk для всех appStores. Единственное отличие - файл assets/config.properties.Как построить много apk по Gradle, Единственная разница в файле активов

Муравей Сценарий:

<target name="makechannelidapk"> 
    <propertyregex property="channel_id" input="${line_content}" regexp="(.*)," select="\1"/> 
    <delete file="${asset-dir}/config.properties" /> 
    <echo file="${asset-dir}/config.properties"CHANNEL_ID=${channel_id}</echo> 

    <antcall target="finalmake" > 
     <param name="id" value="${client_source}"/> 
    </antcall> 
</target> 
+0

Привет! Добро пожаловать в StackOverflow! StackOverflow предназначен для программирования вопросов, и это не вопрос. – CommonsWare

+0

программирование: code, qa, compile, ide, build, deploy и т. Д. – qinmiao

+0

В Интернете есть множество сайтов поддержки разработчиков Android, предлагающих помощь на многих языках. У меня есть некоторые сайты, перечисленные на http://www.andglobe.com. Возможно, вам повезло с сайтом, который более удобен для вас. В противном случае, если вам нужна помощь здесь, вам нужно будет на самом деле ** задать вопрос **. – CommonsWare

ответ

0

использование мета-данных

AndroidManifest.xml

<meta-data android:value="${CHANNEL_VALUE}" android:name="CHANNEL"/> 

build.gradle

android { 
    defaultConfig { 
     ... 
     // default CHANNEL_VALUE 
     manifestPlaceholders = [CHANNEL_VALUE: "default"] 
    } 
    productFlavors { 
     fir{} 
     wandoujia{} 
     qihu360{} 
     baidu{} 
     xiaomi{} 
     uc{} 
     productFlavors.all{ 
      flavor->flavor.manifestPlaceholders = [CHANNEL_VALUE: name] 
     } 
    } 
} 

получить мета-данные

try { 
    ApplicationInfo ai = getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA); 
    Bundle bundle = ai.metaData; 
    String myApiKey = bundle.getString("CHANNEL"); 
} catch (NameNotFoundException e) { 
    Log.e(TAG, "Failed to load meta-data, NameNotFound: " + e.getMessage()); 
} catch (NullPointerException e) { 
    Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage());   
}