2013-08-02 12 views
8

Buduję aplikację na Androida w języku Java, w której definiuję niektóre obiekty, takie jak "użytkownik" lub "playlista" itd.Plik lub baza danych? - Najlepsze rozwiązania do zapisywania obiektów na urządzeniu z Androidem

Jak zapisać te obiekty samodzielnie urządzenie do późniejszego dostępu?

Gson gson = new Gson(); 
    String json = gson.toJson(user); 

Mogę parsować obiekty przez GSON do JSONObject lub JSONArray. Teraz mam dwie opcje, aby zapisać ciągi: W bazie danych lub pliku. Wiem, jak korzystać z klas baz danych Android i klas tworzenia kopii/czytnika, ale jaka jest najlepsza praktyka pod względem wydajności, dostępności, a zwłaszcza prostoty?

+3

http://stackoverflow.com/a/3681831/1276374 –

Odpowiedz

4

To naprawdę zależy od Twojego przypadku użycia.

Jeśli dane aplikacji nie zmienia wiele (myślę aplikację konferencyjną, która jest używana raz lub dwa razy w roku), a następnie można użyć ContentProvider + CursorAdapters które uczynią Twoje życie łatwiejszym.

Jeśli dane użytkownika aplikacji zmieniają się dużo, (pomyśl o Gmailu, gdzie każdego dnia mogą być wyskakujące setki wiadomości e-mail lub kanał informacyjny lub aplikacja sieci społecznościowej, taka jak Google+), prawdopodobnie baza danych może pogorszyć twoje życie. Powinieneś użyć w tym przypadku zewnętrznego systemu buforowania, takiego jak Google Volley lub RoboSpice, itp., Który obsługuje wszystkie buforowania obiektów JSON dla ciebie i wszystkich problemów związanych z współbieżnością, itp.

1

Baza danych SQLite wbudowana w system Android będzie dobrym rozwiązaniem do buforowania dużych ilości informacji. Na przykład, jeśli ciągle pobierasz dane z chmury, a następnie planujesz je przechowywać, powinieneś użyć db. Dbs są zbudowane do obsługi dużych ilości danych, ponieważ zawierają funkcje indeksowania.

Przykładem danych buforowanie JSON z SQLite db można znaleźć tutaj: Caching downloaded JSON data to SQLite database - is it a good idea?

4

Baza skaluje dobrze, silnik bazy danych rozwiązuje problem zarządzania pamięcią, baza danych ma dobre osiągi (gdy jest stosowany odpowiednio), przy czym silnik bazy danych umożliwia uruchamianie złożonych zapytań bez pisania dużej ilości kodu Java, silnik bazy danych umożliwia wstawianie lub usuwanie wierszy bez pisania całego pliku, baza danych jest natywnie obsługiwana w widżetach Androida. Pamiętaj, że masz ograniczoną ilość pamięci, której może używać twoja aplikacja, więc jeśli twoje pliki JSON staną się bardzo duże, nie będziesz mógł załadować ich w całości do pamięci.

1

Użyj database. Twój JSON można łatwo przetworzyć i odczytać w bazie danych. Dodatkowo możesz użyć zapytań SQL, aby znaleźć i modyfikować dane w razie potrzeby w przyszłości. Płaski plik nie pozwoli ci na taką samą elastyczność. Pliki mogą być przydatne dla innych aplikacji, ale dla JSON, podzielone na obiekty, reprezentujące rzeczy - baza danych ma dużo więcej sensu.