Mastering "Product Flavors" on Android
L'unica cosa che devi fare è definirla su ciascuno degli aromi del tuo prodotto:
android {
productFlavors {
devel {
applicationId "zuul.com.android.devel"
}
prod {
applicationId "zuul.com.android"
}
}
}
Invia richieste a più host in base all'aroma Come prima, è necessario includere alcuni parametri nel campo di configurazione dell'aroma del prodotto.
android {
productFlavors {
devel {
applicationId "zuul.com.android.devel"
buildConfigField 'String', 'HOST', '"http://192.168.1.34:3000"'
}
prod {
applicationId "zuul.com.android"
buildConfigField 'String', 'HOST', '"http://api.zuul.com"'
}
}
}
A titolo di esempio, cercheremo di mostrare come è possibile integrare questo con Retrofit per inviare richiesta al server appropriata senza manipolazione quale server si sta puntando e basato sul sapore. In questo caso si tratta di un estratto della app Android Zuul:
public class RetrofitModule {
public ZuulService getRestAdapter() {
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(BuildConfig.HOST)
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
return restAdapter.create(ZuulService.class);
}
}
Come si può vedere è sufficiente utilizzare il BuildConfigclass di accedere alla variabile che avete appena definito.
fonte
2017-01-22 04:52:41
C'è anche un plugin Gradle: https://github.com/JcMinarro/ProperDroid –