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
Odpowiedz
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
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
@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
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
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
Zależy danych. Czy "średnia do dużych" odnosi się do całkowitej ilości danych lub liczby rekordów, lub obu? – MarsAtomic
@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
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