2013-06-15 11 views
9

Ten tytuł sprawia, że ​​zastanawiam się nad tym, która funkcja jest najbardziej odpowiednia w zapisywaniu średnich i dużych danych w określonej aplikacji. Wiem, że są ostatnie pytania, które widziałem na Stackoverflow dotyczące zapisywania danych z tymi funkcjami, ale chcę wiedzieć, jak to, co powiedziałem, co najbardziej pasuje. Czy masz jakieś sugestie dotyczące tego?Zapisywanie danych w systemie Android: przechowywanie plików vs baza danych SQLite a współdzielone preferencje

+0

Zależy danych. Czy "średnia do dużych" odnosi się do całkowitej ilości danych lub liczby rekordów, lub obu? – MarsAtomic

+0

@MarsAtomic: te "średnie i duże dane", o których wspomniałem, odnosiły się do liczby rekordów danych, a więc zmieniają się również do objętości podczas rozszerzania rekordów danych. przepraszam, że sprawiam, że jest mglisty :) – stryker

+0

W twoim przypadku chciałbym polecić skorzystanie z SQLite, ponieważ można go łatwo pobrać w porównaniu do File Storage. Preferencje udostępniane są zwykle przeznaczone do zapisywania preferencji. Osobiście uważam, że nie powinno się ich używać w twoim przypadku. Również jeśli korzystasz z przechowywania plików, musisz ręcznie przetworzyć więcej rzeczy.Myślę, że SQLite jest najlepszym rozwiązaniem spośród twoich opcji. – Milan

Odpowiedz

6

Współdzielone preferencje są lepsze w przypadku ustawień i niewielkich ilości danych. Dane przechowywane we wspólnych preferencjach są przechowywane w parach klucz-wartość. To sprawia, że ​​pobieranie danych jest prostsze, ale nie ma naprawdę skutecznego sposobu na wyszukanie/wyszukanie konkretnego fragmentu danych.

Baza danych jest implementacją SQLite. Jest to przydatne, gdy istnieje duża ilość rekordów do przechowywania, które wszystkie mają te same/podobne pola. Ponieważ jest to SQLite, możesz pisać zapytania, aby uzyskać określone rekordy z tabel.

Nie mam zbyt dużego doświadczenia w zapisywaniu systemu plików do przechowywania, więc ktoś inny będzie musiał z nim porozmawiać.

Oto link do innej dyskusji stackoverflow, która porównuje SQLite i Shared Preferences. Pros and Cons of SQLite and Shared Preferences, a także do dokumentacji systemu Android, która zawiera więcej szczegółów na temat działania każdej metody. http://developer.android.com/guide/topics/data/data-storage.html

+0

Porównanie SQLite Database i Shared Preferences są w większości zakończone. Chciałbym jednak również dowiedzieć się w części dotyczącej systemu plików, jak sprawić, aby transakcje były zgodne z danymi, biorąc pod uwagę oszczędność, szybkość i wydajność. – stryker

+0

@stryker: Ponieważ masz przyzwoitą ilość danych, zapisanie ich w systemie plików prawdopodobnie będzie miało gorszą wydajność niż baza danych. Aby uzyskać dostęp do danych, musisz załadować plik i przeanalizować go, dopóki nie znajdziesz poszukiwanych danych. Jeśli wymaga edycji, musisz wprowadzić zmianę, a następnie ponownie zapisać plik. – JFeather

+0

Oznacza to, że jest to po prostu coś do manipulowania i otwierania plików, uprawnienia do czytania, pisania i/lub wykonywania. Ta szczególna sprawa będzie miała wiele do zrobienia. :) – stryker

10

Shared Preferencje

Przechowuj prywatne prymitywne danych w par klucz-wartość.

Internal Storage

Store prywatne dane w pamięci urządzenia.

pamięci zewnętrzne

Przechowuj dane publiczne na wspólnej pamięci zewnętrznej.

baz danych SQLite

Store strukturze danych w prywatnej bazie danych.

Network Connection

Przechowywanie danych w sieci z własnym serwerze sieciowym.

zgodnie official Website

Powiązane problemy