Ответ 1
Рекомендуемый андроид, позволяющий пользователю определять значения для вашей библиотеки из модуля приложения через метатеги
это так же просто, как использовать этот код в android-manifest
<meta-data android:name="com.yourproject.apikey" android:value="apikey"/>
и вы можете получить эти значения из своей библиотеки следующим образом
try {
ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = applicationInfo.metaData;
String apiKey = bundle.getString("com.yourproject.apikey");
} catch (NameNotFoundException e) {
//Resolve error for not existing meta-tag, inform the developer about adding his api key
}
Основными преимуществами этого подхода являются
1). Вы можете позволить пользователю определять разные значения для каждого типа устройства, например. телефон, планшет или sdk-версия (это может быть неприменимо для вашего дела, но это точно).
2) Вы можете добавить сложные данные в качестве значения в свой метатег, и вы можете использовать это, если хотите добавить строковый массив со всем значением, которое вы хотите объявить.
3) Так как мета-теги являются в основном пакетом, вам легче
-
Прочитайте эти значения в коде вашей библиотеки.
-
Имеют значения по умолчанию, если пользователь не объявил требуемые мета-теги.
(Я считаю, что для разбора свойств из активов требуется больше кода без каких-либо больших преимуществ)
4) Вы также можете добавить метатеги конфигурации для действий, поставщиков и трансляции на вашем AndroidManifest.
5) Также я полагаю, что проще попросить потребителей вашей библиотеки добавить несколько метаинформаций в свой манифест Android, чем добавить файл свойств в свою папку с ресурсами. И я считаю, что это главная причина Многие известные библиотеки используют такой подход, как google-play-service, google-maps, библиотеки отчетов о сбоях и множество библиотек, которые предоставляют пользователю аналитику.
Удача