2012-04-26 20 views
25

Dlaczego używamy bazy danych sqlite w Androidzie. Pracuję nad aplikacją na Androida, na której dane mają być pobierane z serwera, a następnie obliczają dane i wyświetlają je w interfejsie użytkownika.Dlaczego warto korzystać z bazy danych sqlite w systemie Android?

Czy to jest dobre dla mnie, aby pobrać dane do bazy danych sqlite i zaktualizować interfejs użytkownika w regularnych odstępach czasu z sqlite w ciągu 20 minut lub czy dobrze będzie wysłać żądanie HTTP do serwera i zaktualizować dane z serwera Odpowiedź na interfejs użytkownika.

Chciałem wiedzieć, który z nich będzie lepszy i dlaczego? Dlaczego warto zaangażować sqlite DB? Dane odpowiadają pewnym danym tabeli 40X40, na których należy wykonać ciężkie przetwarzanie matematyczne, a następnie wyświetlać je w interfejsie użytkownika (podobnie do aplikacji giełdowej), a dane należy usuwać co 12 godzin. plz doradcze Rgds, Raul

Odpowiedz

24

Dobrze jest korzystać z bazy danych w twoim przypadku.

Plusy:

  • Jeśli aplikacja zostanie zamknięte w pamięci dane zostaną utracone, ale po tym będzie można przywrócić stan z bazy danych, jeśli masz
  • Specjalnie dla przypadku złożonych obliczeń dobrze jest zapisać wynik raz w bazie danych i nie przeliczyć go wielokrotnie na żądanie
  • Baza danych rozwiąże twój interfejs użytkownika z połączenia internetowego, dzięki czemu będziesz mógł wyświetlać wyniki, nawet jeśli nie ma internetu połączenie
  • Korzystając z bazy danych, będziesz mógł pobierać zaktualizowane dane z usługi działającej w tle, bez wpływu na interfejs użytkownika. Uporządkowanie danych w bazie danych zwykle ułatwia zarządzanie wszystkimi danymi aplikacji.

Wady:

  • Dodawanie bazy danych wymaga trochę dodatkowego wysiłku na swojej stronie

Jak widać moja lista dowodzi, należy użyć bazy danych w Twoim przypadku. Może jestem stronniczy, ale przynajmniej zapewniam ci rzeczy do rozważenia.

0

12hrs to długi czas, więc zamiast zostawiać swoje dane wędrować RAM, proponuję używać bazy danych. Ponieważ nigdy nie wiesz, kiedy będziesz potrzebować ponownie go przeczytać.

W przeciwnym razie, jeśli celem jest tylko pobrane dane, przetworzenie ich i wyświetlenie w działaniu, to nie trzeba angażować bazy danych, ponieważ jeśli aplikacja jest zamknięta (z powodu użytkownika lub niskiej ilości pamięci), w każdym razie Twoja aplikacja będzie pobieranie świeżych danych z serwera ... mam rację?

+0

dane tak zostanie dodana (automatycznie wniosek zostanie wysłany do serwera po każdych 30 minut (konfigurowalne), a gdy użytkownik chce zobaczyć dane na temat UI musi ręcznie nacisnąć/dotknąć przycisku UI, który wyświetli dane (po obliczeniu), jeśli naciśnie przed czasem konfigurowalnym dane będą takie same i na wypadek, gdyby naciśnieł> 30 minut, otrzyma najnowsze dane. – Raulp

+0

następnie nie sądzę, że musisz przynieść kłopotów z bazy danych w swoich wymaganiach.Jest bardzo proste i proste do zrobienia bez bazy danych – waqaslam

4

To naprawdę decyzja projektowa, SQLite oferuje bardzo solidny sposób porządkowania i utrzymywania danych, masz tylko inne możliwości zapisu do pliku lub zapisywania w SharedPrefs, obie metody stają się o wiele trudniejsze w zarządzaniu gdy rozmiar danych zacznie się powiększać, musisz ręcznie przechowywać listę obiektów i zarządzać ich nazwami itp. itd. Dane tabeli 40 x 40 są wystarczająco duże, aby uzasadnić użycie SQLite, nawet jeśli upuszczasz i tworzysz tabelę co 12 godziny.

Można rozważyć użycie biblioteki ORM do pobierania i zapisywania danych z DB prostsze, ORMLite jest dobry i zgodny z Android

http://ormlite.com/

+0

Czy mogę go używać Androida? Jak dobrze będzie fr om sqlite? Dlaczego preferujesz to od Sqlite? Sqlite jest wbudowane, to jest zewnętrzne (być może będę musiał użyć tego słoika) – Raulp

+2

@softy Ormlite jest po prostu biblioteką pomocniczą, która powinna ułatwić korzystanie z SQLite (tworzenie relacyjnych map obiektów) . Zasadniczo nie musisz się martwić o procedury pisania/czytania. Użyłem go w Androidzie. Ponadto wpływ na wydajność dodawania dodatkowej biblioteki jest niewielki. –

3

Jeśli aplikacja opiera się głównie na połączenia internetowego nie trzeba buforować informacji w bazie danych. Jednak jeśli chcesz korzystać z aplikacji, gdzie masz zły sygnał lub nie chcesz, możesz użyć buforowanych wartości z bazy danych SQLite. Przy wolnym połączeniu internetowym aplikacja może nie odpowiadać, więc buforowanie może być dobrym pomysłem - ale niekoniecznie musi być w bazie danych SQLite. Powinieneś używać bazy danych sqlite dla danych, które są często wymagane przez urządzenie i które są nieistotne dla twojego komponentu serwera. Jeśli dane są często aktualizowane, ale tylko wtedy, gdy aplikacja jest uruchomiona, możesz chcieć buforować pamięć urządzenia. Zakładam, że twoja aplikacja nie działa cały czas w ciągu 12 godzin, ale jest regularnie wywoływana, aby coś sprawdzić.

0
> update the UI on regular interval from the sqlite in evry 20 minutes 

Nie oczekuj, że aplikacja będzie otwarta przez tak długi czas.

precyzyjnie sugerować Twoim przypadku

Avoid DB 

Fetch Data at app start or at appropriate time when app is opened 
and save it in plain java objects. 

Define Methods within it that perform operation in it. 

Make map or list to save those POJO 

Define Seprate Controller Classes within your project to update map of pojo at any  
specific change to make fresh data available to UI. 
+0

Pobierz dane przy starcie aplikacji lub w odpowiednim czasie, gdy aplikacja jest otwarta i zapisz ją w zwykłych obiektach java. >>>>>>>>> Czy tworzenie/organizowanie danych dla danych 40X40 będzie dobre w zwykłych obiektach java? , tak, można go zmapować za pomocą listy lub dyktafonu. – Raulp

+0

Twórz podklasy i korzystaj z DataStructure Within. Wszystko można oprawić w OOPS, nawet jeśli jest to 80X80 – Javanator

Powiązane problemy