Mastering "Product Flavors" on Android
Điều duy nhất bạn phải làm là xác định nó trên mỗi hương vị sản phẩm của bạn:
android {
productFlavors {
devel {
applicationId "zuul.com.android.devel"
}
prod {
applicationId "zuul.com.android"
}
}
}
Gửi yêu cầu tới nhiều máy chủ tùy thuộc vào hương vị Như trước đây, bạn phải bao gồm một số thông số trên trường cấu hình sản phẩm hương vị của bạn.
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"'
}
}
}
Ví dụ, chúng tôi sẽ cố gắng chỉ cho bạn cách tích hợp với Retrofit để gửi yêu cầu tới máy chủ thích hợp mà không cần xử lý máy chủ nào bạn đang trỏ và dựa trên hương vị. Trong trường hợp này đây là một đoạn trích của ứng dụng 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);
}
}
Như bạn có thể nhìn thấy bạn chỉ cần sử dụng BuildConfigclass để truy cập biến bạn vừa xác định.
Nguồn
2017-01-22 04:52:41
Có một plugin Gradle cũng: https://github.com/JcMinarro/ProperDroid –