Ci sono sia alcuni vantaggi che svantaggi (dovrei dire vantaggi e meno vantaggi) in questi due casi.
come nei commenti della tua domanda hanno detto tutto. Voglio solo aggiungere alcuni punti minori.
Localizzazione:
Per problema di localizzazione sicuramente risorsa stringa è la migliore in quanto è possibile utilizzare file di lingua diversa per differente Locale.
Memoria:
As String risorse vengono salvati in file xml quindi ci sono un certo overhead in più (non un grande uno, però)
Performance:
lettura dalla memoria è sempre più veloce della lettura dal file. Anche se in questo caso la differenza di prestazioni non è significativa
Manutenzione:
E 'solo un parere personale. Per me mantenere il file res è più facile che mantenere una stringa in classe. string.xml è più leggibile per me.
Infine:
Quindi il mio suggerimento è
risorse uso di stringa per i testi che verranno visualizzati per l'utente.
e
utilizzare costanti statiche per puposes interne del vostro programma come i nomi database, variabile interna, Filtro intento ecc
Se non si cura di localizzazione o qualsiasi degli altri [qualificatori] (http://developer.android.com/guide/topics/resources/providing-resources.html) supportati da Android per le risorse, quindi è possibile utilizzare le costanti Java. Vorrei che le costanti fossero leggermente più veloci, in quanto possono essere sottolineate dal compilatore e non devono essere gonfiate. Tuttavia, è probabilmente solo una micro-ottimizzazione, quindi non mi preoccuperei troppo, a patto che non stiate eseguendo operazioni di loop sul thread dell'interfaccia utente in cui costantemente gonfiate stringhe o array di stringhe. –
Se si desidera pubblicare l'app in lingue diverse, tutte le stringhe visualizzate nell'interfaccia utente devono essere nel file strings.xml. Il resto puoi renderli statici se vuoi. –
Se si tratta davvero di "best practice", non utilizzare mai le stringhe UI hardcode, nemmeno in un piccolo progetto personale. Meglio evitare le cattive abitudini che un giorno far sì che i tuoi colleghi programmatori versino del sale nel tuo caffè quando devono internazionalizzare il tuo codice. Anche nel codice, alcune stringhe dovrebbero essere risorse, ad es. durante l'elaborazione dell'input dell'utente che può variare in base alla locale. – MarsAtomic