Ich schreibe eine Bibliothek, die von Entwicklern verwendet wird, und ich habe ein Konfigurationselement wie apiKey
, environment
und andere. Ich möchte Entwickler diese Werte festlegen, mein erster Gedanke war Java-Eigenschaftendatei, die ich in der Application-Klasse laden, aber ich habe gesehen, Google Play und Google Map SDK bitten die Entwickler, ihre apiKey in Meta-Tag-Tag in Android hinzuzufügen Manifest. Was ist der empfohlene Weg?Android-Konfiguration in Meta-Daten oder in der Eigenschaftendatei?
Antwort
Die empfohlene android Weise kann der Benutzer definieren Werte für Ihre Bibliothek aus dem Anwendungsmodul ist durch Meta-Tags
es ist so einfach wie mit diesen Code auf der lassen android-Manifest
<meta-data android:name="com.yourproject.apikey" android:value="apikey"/>
und Sie können diese Werte aus Ihrer Bibliothek wie diese
erhaltentry {
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
}
Die wichtigsten Vorteile dieses Ansatzes sind
1), die der Benutzer verschiedene Werte pro Gerätetyp definieren lassen kann z.B. Smartphone, Tablet oder sdk-Version (dies für Ihren Fall nicht anwendbar sein kann, aber es ist ein guter Punkt für sicher)
2) Sie komplexe Daten als Wert in Ihrem Meta-Tag hinzufügen, und Sie können verwenden Wenn Sie ein Zeichenfolgenarray mit dem gesamten Wert hinzufügen möchten, den Sie deklarieren möchten.
3) Da Meta-Tags sind im Grunde ein Bündel ist es für Sie einfacher zu
diese Werte lesen auf Ihrem Bibliothekscode.
Haben Sie Standardwerte, wenn der Benutzer die erforderlichen Meta-Tags nicht deklariert hat.
(Ich glaube, dass die Eigenschaften von Vermögenswerten Parsen ohne großen Vorteil mehr Code erforderlich)
4) Sie können auch Konfiguration Meta-Tags für Aktivitäten, die Anbieter und broadcastreceiver auf Ihrem AndroidManifest hinzufügen.
5) Auch ich nehme an, dass es einfacher ist, für die Verbraucher Ihrer Bibliothek zu bitten, ein paar Meta-Informationen auf seinem Android Manifest hinzuzufügen, als eine Eigenschaftendatei auf ihrem Vermögensordner hinzuzufügen. Und ich glaube, dass dies der Hauptgrund ist Grund Viele bekannte Bibliotheken verwenden diesen Ansatz wie Google-Play-Service, Google-Maps, Absturzberichterstattungsbibliotheken und viele Bibliotheken, die eine Benutzeranalyse bereitstellen.
Good Luck
Es ist scheint, dass unter Verwendung von Meta-Daten-Tag der Android Weg, dies zu erreichen, obwohl ich keine offizielle Dokumentation, warum streitet nicht finden kann.
Mit Meta-Daten können Sie Eigenschaftswert definieren anstelle eines statischen Wert auf eine Ressource verwenden, auf diese Weise Sie unterschiedliche Werte für die gleiche Eigenschaft auf der Grundlage der Ressourcen-Qualifikation bekommen. Dies ist sehr nützlich, wenn Ihre Immobilie internalisiert werden muss.
Ex:
<meta-data android:value="foo.bar" android:name="@string/hello" />
ist einfach mit diesen <meta-data android:name="com.google.android.geo.API_KEY" android:value="API_KEY"/>
- 1. Einen Wert in der Python-Eigenschaftendatei sichern
- 2. Laden der Eigenschaftendatei in JUnit @BeforeClass
- 3. Aktuelles Verzeichnis in der Java-Eigenschaftendatei
- 4. Lesen der Eigenschaftendatei
- 5. log4j StringToMatch in Eigenschaftendatei
- 6. Kann ich Regex in der Eigenschaftendatei in JAVA verwenden?
- 7. Token-Metadaten in Tokbox
- 8. Regel-Engine, die Regeln in einer Eigenschaftendatei oder in der Datenbank speichert
- 9. angularjs aus der Eigenschaftendatei lesen
- 10. Persistence.xml Feldwerte aus der Eigenschaftendatei
- 11. Metadaten in PDF-Dateien
- 12. Mehrere Eigenschaftendatei
- 13. Abrufen von Daten aus der Eigenschaftendatei in Java
- 14. Metadaten der Textdatei
- 15. Überschreiben Wordpress OpenGraph Metadaten und/oder wp_head
- 16. So rufen Sie die Browser oder Treiber aus der Eigenschaftendatei in webdriver auf?
- 17. Metadaten vs ViewData in HtmlHelper
- 18. wie man Eigenschaftendatei in scala liest
- 19. Wie Metadaten hinzuzufügen in joomla
- 20. So lesen Sie die Eigenschaftendatei in der Webanwendung?
- 21. Laden von Werten aus der Eigenschaftendatei dynamisch in GWT
- 22. Wie der Wert zurück verspotten einer Eigenschaftendatei in JMock Test
- 23. Wie generiere ich Enum aus der Eigenschaftendatei in Maven?
- 24. Wie lade ich die Eigenschaftendatei in der Hauptmethode Java?
- 25. Wie liest man VM-Argumente aus der Eigenschaftendatei in Eclipse?
- 26. C# oder CMD: Word-Metadaten entfernen
- 27. Angular 2 Externalisierung (Eigenschaftendatei)
- 28. Startup-Zeitstempel in Eureka-Metadaten
- 29. Wie neu laden Eigenschaftendatei in Java
- 30. Wie Wert in Java-Eigenschaftendatei mit Gradle