Попробуйте такой вариант:
1) создаёте интерфейс для работы с разными API
public interface SocialApi {
void post(Post post);
void deletePost();
}
2) для каждой соц.сети имплементите этот интерфейс
public class VkApi implements SocialApi {
@Override
void post(Post post){}
@Override
void deletePost(){}
}
3) в productFlavors прописываете
productFlavors {
appForVk {
buildConfigField("com.social.myapp.SocialApi", 'api', "new com.social.myapp.vk.VkApi()")
applicationId 'com.social.myapp.vk'
}
appForOk {
buildConfigField("com.social.myapp.SocialApi", 'api', "new com.social.myapp.ok.OkApi()")
applicationId 'com.social.myapp.ok'
}
}
4) далее в BuildConfig будет сгенерировано поле
public static final com.social.myapp.SocialApi api = new com.social.myapp.vk.VkApi();
Через BuildConfig.api можно работать с соцсетью и реализация класса будет подменяться для разных ProductFlavor