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
- 1. onUpgrade() baza danych sqlite w systemie Android
- 2. Baza danych a przechowywanie systemu plików
- 3. Pamięć wewnętrzna systemu Android VS Preferencje współdzielone
- 4. C#: Wewnętrzna baza danych plików w aplikacji
- 5. Android - czy istnieje baza danych SQLite?
- 6. "Preferencje współdzielone"
- 7. Zmiana nazwy systemu Android Baza danych SQLite
- 8. Android ExpandableListView i baza danych SQLite
- 9. Przechowywanie ogromnych danych w SQLite
- 10. Baza danych SQLite Zablokowany wyjątek
- 11. Android: Ustaw preferencje współdzielone podczas instalacji?
- 12. Przechowywanie wartości NaN w bazie danych SQLite
- 13. Zawieszenie UNIQUE nie powiodło się: baza danych sqlite: android
- 14. katalog danych użytkownika w systemie Android 4.3
- 15. Baza danych bazy danych Codeigniter
- 16. Domyślna baza danych Android Realm
- 17. Przechowywanie rozmiarów plików w bazie danych
- 18. Dlaczego warto korzystać z bazy danych sqlite w systemie Android?
- 19. Jak przechowywać obiekt w bazie danych SQLite w systemie Android?
- 20. Najlepsza metoda zapisywania danych - preferencje, sqlite, serializowalne lub inne?
- 21. Baza danych - wersja danych
- 22. Współdzielone preferencje zostały zapisane po raz pierwszy
- 23. Eksport bazy danych SQLite do pliku XML w systemie Android
- 24. Zapisywanie na dysku bazy danych w pamięci
- 25. Android: zamykanie bazy danych SQLite
- 26. Baza danych Firebase vs MySQL (hierarchiczna/relacyjna)
- 27. Testowanie bazy danych SQLite Android
- 28. Schemat bazy danych Android Sqlite
- 29. Przechowywanie dużych ilości danych: DB lub system plików?
- 30. Dlaczego otrzymuję SQLException: baza danych jest zablokowana w mojej bazie danych SQLite JDBC?
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