Jakiej techniki przechowywania danych w systemie Android użyć?

Dokumentacja Androida ma następujące opcje poniżej, ale nie wyjaśnia, w jakich okolicznościach każda z nich jest najlepsza. Jakie są plusy i minusy każdej metody? np. na jakich warunkach SQL byłby lepszy od Shared Preferences?

  • Wspólne Preferencje
  • Pamięć Wewnętrzna
  • Pamięć Zewnętrzna
  • Bazy Danych SQLite
  • Połączenie Sieciowe
Author: Deco, 2012-04-03

4 answers

Różne opcje przechowywania w Androidzie

Tutaj wpisz opis obrazka


Dostawcy Treści

Tutaj wpisz opis obrazka

  • Rozważmy, że dane strukturalne dodane do urządzenia z aplikacji1 są niedostępne dla innych aplikacji2 obecnych w tym samym urządzeniu, ale zdjęcie profilowe dodane do urządzenia przez application1 jest dostępne dla application2 działa w tym samym urządzeniu

  • Rozważ urządzenie z Androidem jako miasto, aplikacje w nim są domy w mieście, ludzie w domy (aplikacja) są danymi. Teraz dostawca treści jest jak broker w mieście (urządzenie z Androidem). Ten broker zapewnia dostęp dla ludzi w mieście do znalezienia różne domy odnoszące się do dostawcy treści w Androidzie urządzenie zapewnia dostęp do danych w urządzeniu dla różnych aplikacje.


Wspólne Preferencje

Tutaj wpisz opis obrazka

  • Zastanów się, czy mam aplikację, powiedz aplikację książki twarzy, której używam do logowania się do my konto.

  • Teraz po raz pierwszy wprowadzam swoją nazwę użytkownika i hasło, aby uzyskać dostęp do mojego konta. Powiedzmy, że wyloguję się z aplikacji godzinę później ponownie używam tej samej aplikacji Face book, aby zalogować się ponownie do mojej aplikacji.

  • Muszę ponownie wprowadzić nazwę użytkownika i hasło, aby zalogować się do mojego konta i ustawić motyw do mojej aplikacji i inne ustawienia, jak moja aplikacja wygląda w moim obecnym telefonie

  • Nie jest to konieczne, ponieważ uważam, że używam telefonu aby zalogować się do wniosek. Więc zawsze będę używać telefonu, aby zalogować się ponownie i znowu, w ten sposób wprowadzanie moich poświadczeń raz po raz jest więcej pracy pokazuje, że nie jest to aplikacja przyjazna dla użytkownika

  • Współdzielone Preferencje są bardzo przydatne w takich scenariuszach, w których mogę korzystać jego funkcja udostępniania moich danych w pliku xml, który fizycznie istnieje w aplikacja na Androida zainstalowana w moim telefonie, która nie jest zniszczona, nawet jeśli aplikacja jest zamknięta. Tutaj możemy zapisać dane preferencji użytkownika obecny podanie.

  • W rezultacie przy następnym otwarciu aplikacji w telefonie widzę dane automatycznie wypełniane niezbędne pola i ustawienia to


Przechowywanie Plików

Tutaj wpisz opis obrazka

  • W Androidzie możemy wykorzystać przestrzeń pamięci urządzenia do przechowywania danych w it dla aplikacji. Rodzaj danych obejmuje takie rzeczy jak plik tekstowy, plik obrazu, plik wideo, Plik audio itp.

  • Jak widać na rysunku że są dwa miejsca, w których możemy zrób to. Jednym ze sposobów jest zapisywanie plików raw do podstawowego /wtórnego magazyn. Innym sposobem jest zapisanie plików cache do pamięć pierwotna/wtórna.

  • Istnieje również różnica między przechowywaniem surowych danych a danymi z pamięci podręcznej, surowe dane raz zapisane w pamięci przez użytkownika muszą być jawnie usunięte przez użytkownika, w przeciwnym razie istniałoby do tego czasu. Dane pamięci podręcznej przechowywane w pamięci nie są danymi stałymi, ponieważ system automatycznie usuwa go, jeśli czuje, że brakuje pamięć.

Tutaj wpisz opis obrazka

Pamięć Wewnętrzna:

  • Uznać, że użytkownik w aplikacji zapisał dane w wewnętrznej pamięci, wtedy tylko ten użytkownik tej aplikacji ma dostęp do tego danych w telefonie komórkowym i dane te są automatycznie usuwane, gdy użytkownik odinstalowuje aplikację. A propos pamięci wewnętrznej szeregowy.

  • Katalog pamięci wewnętrznej apps jest przechowywany przy użyciu Nazwa pakietu nazwa w specjalnym miejscu w systemie plików android.

  • Inne aplikacje lub użytkownicy bieżącej aplikacji nie mają dostępu do pliku ustawionego przez konkretnego użytkownika i konkretnej aplikacji, chyba że jest to wyraźnie dostępne dla użytkownika do odczytu/zapisu dostępu.

Tutaj wpisz opis obrazka


SQLite

Tutaj wpisz opis obrazka

  • Sqlite służy do przechowywania bardziej ustrukturyzowanych danych lokalnie w telefonie komórkowym gdzie działa aplikacja na Androida. Dane strukturyzowane obejmuje od które pokazano na rysunku jak informacje ucznia w postaci wiersze i kolumny.

  • Sqlite oferuje podobną funkcjonalność jak Mysql i oracle, ale z ograniczone funkcje funkcjonalne. Niektóre rzeczy wymagają wykonywania operacje zapytań na tabelach. Istnieją jednak funkcje takie jak tworzenie widoki, ale także niektóre funkcje nie są dostępne, jak procedura składowana.

  • Sqlite jest bardzo pomocny w przechowywaniu złożonych i dużych danych, które mogą be pobrany raz i może być używany ponownie i ponownie, aż do aplikacji ucieka. Po zamknięciu aplikacji baza danych sqlite jest również zniszczone.


Składanie wszystkich elementów razem

Tutaj wpisz opis obrazka

 91
Author: Devrath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-13 06:18:44
  • wspólne preferencje {[3] } są dobre do przechowywania ... preferencje aplikacji i inne małe bity danych. Jest to bardzo prosty, trwały magazyn kluczy łańcuchowych dla kilku typów danych: boolean, float, int, long I string. Tak na przykład, jeśli moja aplikacja miała login, mogę rozważyć przechowywanie klucza sesji jako ciąg w SharedPreferences.
  • Pamięć wewnętrzna jest dobra do przechowywania danych aplikacji, do których Użytkownik nie potrzebuje dostępu, ponieważ użytkownik nie może łatwy dostęp do pamięci wewnętrznej. Prawdopodobnie dobre do buforowania, dzienników, innych rzeczy. Wszystko, co tylko aplikacja zamierza utworzyć Read Update lub usunąć.
  • Pamięć Zewnętrzna . Świetne na przeciwieństwo tego, co powiedziałem. Aplikacja dropbox prawdopodobnie używa zewnętrznej pamięci masowej do przechowywania folderu dropbox użytkownika, dzięki czemu użytkownik ma łatwy dostęp do tych plików poza aplikacją dropbox, na przykład za pomocą menedżera plików.

  • Bazy danych SQLite są świetne ilekroć masz zamiar użyć wiele danych strukturalnych i stosunkowo sztywny schemat zarządzania nim. Umieścić w Warunkach laika, SQLite jest jak MySQL lub PostgreSQL tyle, że zamiast bazy danych działających jako demon serwera, który następnie pobiera zapytania ze skryptów CGI, takich jak php, jest po prostu przechowywane w.pliku db, a dostęp i zapytanie poprzez prostą bibliotekę w aplikacji. Podczas gdy SQLite nie może skalować prawie tak dużych jak dedykowane bazy danych, jest bardzo szybki i wygodny dla mniejszych aplikacje, takie jak aplikacje na Androida. Użyłbym SQLite db, gdybym robił aplikację do agregowania i pobierania przepisów, ponieważ tego rodzaju dane są stosunkowo ustrukturyzowane, a baza danych pozwoliłaby na to, aby była dobrze skalowana. Bazy danych są miłe, ponieważ zapisanie wszystkich danych do pliku, a następnie parsowanie ich z powrotem we własnym, zastrzeżonym formacie nie jest zabawne. Z drugiej strony przechowywanie danych w XML lub JSON nie byłoby takie złe.

  • Połączenie sieciowe odnosi się do przechowywania danych w chmurze. Pliki HTTP lub FTP oraz przesyłanie treści za pośrednictwem java.net. * Pakiety sprawiają, że tak się dzieje.

 34
Author: Teddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-25 13:39:23

SharedPreferences jest przeznaczony głównie do ustawień specyficznych dla aplikacji, do których można uzyskać dostęp za pomocą menu ustawień, takich jak ustawienia aplikacji. Dobrym pomysłem jest, aby wszystko było proste - głównie flagi logiczne, krótkie łańcuchy lub liczby całkowite. SharedPreferences dane utrzymują się przy ponownym uruchomieniu urządzenia i są usuwane wraz z odinstalowaniem aplikacji. Dane są zapisywane jako para klucz-wartość.

Pamięć wewnętrzna jest najczęściej używana do przechowywania większych, nietrwałych danych. Wykorzystujesz wewnętrzne przechowywanie jeśli chcesz przetworzyć obraz, krótki klip wideo, duży plik tekstowy itp. Ale nie przechowujesz przetworzonych danych w pamięci wewnętrznej - jego funkcja jest bardziej podobna do pamięci RAM procesora. Ilość dostępnej pamięci wewnętrznej aplikacji zależy od urządzenia, ale zawsze dobrym pomysłem jest przechowywanie zawartości poniżej 1 MB. Do danych odwołuje się ścieżka do pliku.

Pamięć zewnętrzna odnosi się nie tylko do pamięci SDCard, ale dla telefonów wyższej klasy może to średnia wewnętrzna pamięć do montażu(jak w Galaxy Nexus lub S2). Tutaj przechowujesz duże pliki wideo, obrazy o wysokiej rozdzielczości i 20-megabajtowy plik tekstowy, który chcesz przeanalizować w aplikacji. Jest to również miejsce do przechowywania danych, które chcesz udostępnić między urządzeniami, jeśli wymienisz karty sd. Do danych odwołuje się również ścieżka do pliku.

Bazy danych SQLite to miejsce, w którym przechowujesz praktycznie wszystko, co chcesz, w zwykłej bazie danych - z zaletą organizowania rzeczy do tabel, wierszy i kolumn. To działa najlepiej z rzeczy, które chcesz wyświetlane w interfejsie jako listy-najlepszym przykładem może być wielki wynalazek zna jako CursorAdapter. Dane przechowywane tutaj również utrzymują się przy ponownym uruchomieniu urządzenia i są usuwane za pomocą deinstalacji aplikacji. Możesz również udostępniać dane między aplikacjami za pomocą SQLite db, jeśli podłączysz je do ContentProvider. Dostęp do danych odbywa się za pomocą kursora , w którym można wywoływać metody tak, jakbyś wykonywał sql Oświadczenia.

Połączenie sieciowe nie jest tak naprawdę techniką przechowywania danych, ale może być sposobem przechowywania danych dla określonego użytkownika, pod warunkiem, że urządzenie jest podłączone do Internetu, przy użyciu pewnego rodzaju uwierzytelniania. Musisz zachować równowagę między pobieraniem danych za każdym razem, gdy aplikacja tego potrzebuje, a jednorazową synchronizacją danych, która ostatecznie doprowadziłaby do innej z wymienionych powyżej opcji przechowywania.

 15
Author: josephus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-26 06:36:07

Wspólne Preferencje to pary klucz / wartość, nic więcej. Więc jeśli chcesz śledzić, powiedzmy, uczniów i ich wynik testu, to naprawdę nie będzie działać dobrze dla tego.

Baza danych to po prostu baza danych. Możesz zdefiniować tyle kolumn (i tabel), ile potrzebujesz, aby wykonać zadanie.

Jeśli chodzi o preferencje dla Twojej aplikacji, użyj shared preferences (prawie każda preferencja, o której myślę, może być wykonana w ten sposób), jeśli jest to coś bardziej skomplikowanego, użyj bazy danych.

 4
Author: Barak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-03 03:56:27