Android, Przechowywanie dużej ilość obrazków połączonych z bazą danych XML

0

Witam,

Poproszono mnie o napisanie niewielkiej aplikacji pod androida (nie mam doświadczenia z tą platformą na co dzień piszę w C#, ale sądzę że jest to w miarę do ogarnięcia) .Jej sercem byłaby "baza danych" zawierająca kategorie, przypisane do nich nazwy instytucji i co najważniejsze obrazki będące logami tych instytucji. Baza danych to najprawdopodobniej będzie po prostu plik XML z odnośnikami do obrazków. Zastanawaim się tylko jak najlepiej by to rozwiązać. Baza powinna być jak najbardziej zwarta i łatwa do edycji bo będzie się często zmieniać.Ideałem byłby pojedynczy plik zip zawierający zarówno samą bazę jak i pliki z obrazkami który po prostu dołącza się do zasobów a aplikacja sobie radzi z jego obsługą. Czy są jakieś inne sposoby ? Jak najlepiej coś takiego rozwiązać. Ogólnie apka będzie naprawdę niewielkaw sumie to jej zadaniem będzie tlko prezentacja zawartości tej bazy nic ponad to.

0

Sądzę, że lepszym rozwiązaniem byłaby zewnętrzna baza danych np. MySQL i WebService napisany np. w PHP, który serwował by te dane z bazy. Z poziomu androida nie podłączysz się bezpośrednio do bazy danych, ale możesz komunikować się z webservice.
W Twoim przypadku, gdyby zaszła modyfikacja rekordów bazy danych musiałbyś opublikować nową wersję aplikacji.

0

Ok po poprzednim poście i pokopaniu w sieci mam już jakiś obraz tego co muszę zrobić. Jednak widzę problem:

Baza danych SQLite jest tworzona przez system w określonym miejscu. Ja chciałbym żeby plik bazy danych był dołączony do zasobów aplikacji(jeden plik z bazą danych) co oznacza że te dane będą duplikowane w momencie kiedy baza danych zostanie utworzona już w systemie (coś w rodzaju inicjalizacji bazy danych przy pierwszym uruchomieniu) z tymi danymi które będą w zasobach. Szacuję że baza danych łącznie z obrazkami może mieć ok 100MB w najabrdziej pesymistycznym wariancie (w optymistycznym 10-20 MB) więc taka duplikacja nie wchodzi w grę. Co z tym problemem zrobić ?

0

Wystarczy, że utworzysz tabelę w bazie danych z numerem wersji.
Przy starcie aplikacji sprawdzisz czy baza istnieje i odczytasz numer wersji. Jeśli jej nie ma lub wersja jest nieaktualna to nadpiszesz bazę danych.
W aplikacji, w katalogu **assets ** trzymasz swoją bazę i kopiujesz na dostępny obszar aplikacji lub na sdcard.

0

GreenDAO albo Sugar orm. Nie baw się bezpośrednio z bazą. Co do tego "szybkiego ogarnięcia" tematu... obyś się nie rozczarował.

0

? Napisałem przecież, że kopiujesz tylko wtedy gdy baza jest nieaktualna, czyli po upgradzie apki lub pierwszej instalacji. -

Nic nie trzeba nigdzie kopiować, trzeba tylko zmienić wersję schematu na 2,3 albo 1500100900 i wtedy nie ma żadnych problemów z aktualizacją bazy danych.

Dlaczego niezalogowani użytkownicy nie mogą edytować swoich postów. Jakiś prosty mechanizm z tymczasowym tokenem by się przydał (tak tylko głośno myślę :P).

1 użytkowników online, w tym zalogowanych: 0, gości: 1