In diesen beiden Fällen gibt es sowohl Vor- als auch Nachteile (ich würde Vorteile und weniger Vorteile sagen).
wie in den Kommentaren Ihrer Frage sagten sie alles. Ich möchte nur einige kleinere Punkte hinzufügen.
Lokalisierung:
Zur Lokalisierung Ausgabe definitiv String-Ressource ist die beste, wie Sie verschiedene Sprachdatei für differente Locale verwenden können.
Speicher:
As String-Ressourcen in XML-Datei gespeichert werden, so gibt es einige zusätzlichen Aufwand sind (kein großer ein though)
Performance:
aus dem Speicher zu lesen ist immer schneller als das Lesen aus der Datei. Obwohl in diesem Fall ist die Leistung Unterschied nicht signifikant
Wartung:
Es ist nur eine persönliche Meinung. Für mich ist die Pflege der Res-Datei einfacher als die Pflege der Zeichenkette in der Klasse. string.xml ist für mich besser lesbar.
Endlich:
Also mein Vorschlag ist
Verwendung String-Ressourcen für die Texte, die an Benutzer angezeigt wird.
und
Verwendung statische Konstanten für interne puposes des Programms wie Datenbanknamen, interne Variable, Intent-Filter Name usw.
Wenn Sie kümmern sich nicht um die Lokalisierung oder jede der anderen [Qualifier] (http://developer.android.com/guide/topics/resources/providing-resources.html), die Android für Ressourcen unterstützt, könnten Sie auch Java-Konstanten verwenden. Ich würde die Konstanten etwas schneller machen, da sie vom Compiler inline geschrieben werden können und nicht aufgeblasen werden müssen. Es ist jedoch wahrscheinlich nur eine Mikrooptimierung, also würde ich mich nicht zu sehr darum kümmern, vorausgesetzt, Sie führen keine Schleifenoperationen im UI-Thread durch, in dem Sie ständig Strings oder String-Arrays aufblasen. –
Wenn Sie Ihre App in verschiedenen Sprachen veröffentlichen möchten, sollten alle auf der Benutzeroberfläche angezeigten Zeichenfolgen in der Datei strings.xml enthalten sein. Den Rest kannst du statisch machen, wenn du willst. –
Wenn es sich wirklich um "Best Practices" handelt, sollten Sie die UI-Strings niemals hartcodieren, nicht einmal in einem kleinen, persönlichen Projekt. Am besten ist es, schlechte Angewohnheiten zu vermeiden, die eines Tages dazu führen, dass Ihre Mitschüler Salz in Ihren Kaffee schütten, wenn sie Ihren Code internationalisieren müssen. Auch im Code sollten einige Zeichenfolgen Ressourcen sein, z. bei der Verarbeitung von Benutzereingaben, die je nach Gebietsschema variieren können. – MarsAtomic