W obu przypadkach istnieją zalety i wady (muszę powiedzieć zalety i mniej zalet).
jak w komentarzu na twoje pytanie, powiedzieli to wszystko. Chcę tylko dodać drobne punkty.
Lokalizacja:
Na pewno kwestii lokalizacji zasobów String jest najlepsza, jak można wykorzystać inny plik językowy dla differente Locale.
Pamięć:
Ponieważ zasoby tekstowe są zapisywane w pliku xml więc istnieje jakiś dodatkowy narzut (nie jest to poważny jeden chociaż)
Wydajność:
odczytu z pamięci jest zawsze szybszy niż czytanie z pliku. Chociaż w tym przypadku różnica nie jest znacząca wydajność
robót:
To tylko osobista opinia. Utrzymywanie pliku res jest łatwiejsze niż utrzymywanie łańcucha w klasie. string.xml jest dla mnie bardziej czytelny.
Wreszcie:
Więc moja propozycja jest
używaj sznurka zasoby dla tekstów, które będą widoczne dla użytkownika.
i
używać statycznych stałe dla wewnętrznych puposes swojego programu, takich jak bazy danych, nazw zmiennej wewnętrznej, zamiar nazwy filtru itp
Jeśli nie dbają o lokalizacji lub którykolwiek innych [kwalifikatory] (http://developer.android.com/guide/topics/resources/providing-resources.html), które Android obsługuje dla zasobów, możesz równie dobrze używać stałych Javy. Stałabym, żeby były nieco szybsze, ponieważ mogą być zaznaczone przez kompilator i nie trzeba ich zawyżać. Jest to prawdopodobnie tylko mikrooptymalizacja, więc nie przejmowałbym się tym zbytnio, pod warunkiem, że nie wykonujesz żadnych operacji zapętlania w wątku UI, w którym ciągle nadymasz ciągi znaków lub tablice ciągów. –
Jeśli chcesz opublikować swoją aplikację w językach różnicowych, wszystkie ciągi wyświetlane w interfejsie powinny znajdować się w pliku strings.xml. Resztę możesz uczynić statycznymi, jeśli chcesz. –
Jeśli chodzi o "najlepsze praktyki", o które prosisz, nigdy nie koduj ciągów UI, nawet w małym, osobistym projekcie. Najlepiej unikać złych nawyków, które pewnego dnia spowodują, że twoi koledzy programiści wyleją sól do kawy, gdy będą musieli umiędzynarodowić swój kod. Nawet w kodzie niektóre ciągi powinny być zasobami, np. podczas przetwarzania danych wprowadzanych przez użytkownika, które mogą się różnić w zależności od ustawień narodowych. – MarsAtomic