» »

[Android] Podatkovna baza

[Android] Podatkovna baza

shadeX ::

Živijo.

Mene zanima katera baza je najpogosteje uporabljena za shranjevanje podatkov na androidu, tako da podatke bere iz strežnika. Če sem pravilno razumel SQLite je podatkovna baza shranjena samo na telefonu in ne na strežniku.. ali se motim?

Torej, katera bi bila najprimernejša podatkovna baza za branje podatkov iz nje. Recimo jaz nekaj vpišem v bazo in uporabnik lahko vidi ( z dostopm do interneta seveda ), tiste podatke ki sem jih vpisal v bazo.

A MySQL se lahko uporabi za android?

shadeX ::

ali pa če tudi tako vprašam: katero bazo uporabljajo tiste igre, ki shranjujejo High Score na strežnik..in nato drugi uporabniki po vsem svetu to vidijo.

carota ::

Poenostavljeno: SQLite je baza shranjena v enem fajlu na telefonu. Vanjo lahko pišeš in iz nje bereš, brišeš ... Za to ne potrebuješ povezave na net, saj jo imaš pri sebi. Poleg tega ne potrebuješ posebnega database serverja. Če hočeš, da uporabniki vidijo high score drugih playerjev, pa rabiš bazo, ki je dostopna na netu (database server) in vanjo vsi vpisujejo in iz nje berejo. MySQL je ena od možnih kandidatk za tako bazo. Ta varianta pa je bolj zapletena, ker se običajno na bazo ne moreš neposredno konektat, zato svetujem da poizkusiš najprej z SQLite.

"Database server" najbrž ni najprimernejši izraz, a ti bo še najbolj razumljivo.

shadeX ::

ja razumem kar si povedal. Vendar kot si rekel.. potreboval bi bazo katero bi lahko tudi jaz updejtal kadar bi hotel, ter bi tako uporabniki ki bi imeli program inštaliran na telefonu , tudi lepo s priklopom na internet te podatke videli.

Za mysql sm že neki gledal vendar na enemu forumu to bolj odsvetujejo ker je stvar bolj zapletena za naredit..

Da še bolj poenostavim. A obstaja kakšna baza ki bi z androidom sodelovala tako kot recimo sodelujeta PHP pa MYSQL.

c00L3r ::

Če hočeš imet skupne podatke nekje na internetu oz. v "oblaku", kot zdaj radi rečejo marketing people, boš rabil neki aplikacijski/web strežnik, ki bo obdeloval zahtevke in potem te delal z bazo.

Direktno povezavo iz Android na MySQL (ali kak drug podatkovni) server ti bodo vsi odsvetovali.

Če ne gre za preveč kompleksno zadevo, bi jaz uporabil MySQL + PHP server. Za komunikacijo zapakiraš vse podatke v JSON format.

Za lokalno shranjevanje podatkov na Android-u pa se uporablja SQLite.

Prav tako bi ti odsvetoval implementacijo klasičnih SOAP web service protokolov, ker boš porabil preveč časa, da to iz nule vzpostaviš.

Lahko namesto JSON uporabiš tudi preprost XML, če ti je to lažje. Je pa res, da XML zasede malo več prostora, saj imaš vedno zraven oznake. Pri JSON pa moraš vedet, kje kaj je.

Zgodovina sprememb…

  • spremenil: c00L3r ()

carota ::

@shadeX, na računalnik si instaliraj WAMP (za windows) ali LAMP (za linux) in se poveži na svoj računalnik namesto na nek on-line server. Ko boš imel vse izpiljeno boš točno vedel kaj potrebuješ za prenos na internet.

Pri izvedbi pa upoštevaj še kaj je c00L3r napisal in uporabi JSON ali XML.

shadeX ::

Hvala obema. Vsaj vem okvirno sedaj kako in kaj.. =)

shadeX ::

Recimo, da imam v mislih neko aplikacijo, ki pač potrebuje podatkovno bazo (zamislite si, da bi ta aplikacija posredovala podatke uporabniku, vendar vedno več. Ne bi bilo vedno isto. Se pravi jaz bi dodajal zapise v bazo. Vendar problem bi bil ker bi vsakič moral uporabnik posodobiti aplikacijo. In sedaj če imaš ti tako aplikacijo ki zahteva vedno nove reči - predstavljajte si kot spletno trgovino. Kaj bi spletna trgovina brez posodabljanja in dodajanja novih artiklov). Jezi me predvsem to ker bi moral uporabnik vedno posodobiti aplikacijo z google play-a. Torej problem hočem rešiti predvsem s strežniško bazo.

carota ::

Zakaj bi moral uporabnik posodobiti aplikacijo, če dodaš nekaj novega v bazo? Trgovine ni treba posodabljati, ko dodaš nov artikel. Morda samo podatke preneseš lokalno. Ne vem pa zakaj bi imel te stvari lokalno.

Bazo na strežniku itak rabiš, če hočeš bit "live".

Ne poznam Google Play-a, a dvomim, da bi bilo treba "vedno posodobiti aplikacijo" z njim.

Nisem najbolj prepričan, da veš kaj počneš. ;)

shadeX ::

carota je izjavil:

Zakaj bi moral uporabnik posodobiti aplikacijo, če dodaš nekaj novega v bazo? Trgovine ni treba posodabljati, ko dodaš nov artikel. Morda samo podatke preneseš lokalno. Ne vem pa zakaj bi imel te stvari lokalno.

Bazo na strežniku itak rabiš, če hočeš bit "live".

Ne poznam Google Play-a, a dvomim, da bi bilo treba "vedno posodobiti aplikacijo" z njim.

Nisem najbolj prepričan, da veš kaj počneš. ;)


Vem, kaj počnem, vendar si me ti narobe razumel. Ok lepo po korakih.

1. Android podpira v celoti SQLite podatkovno bazo, vendar je "integrirana" v aplikacijo. ( Kar sem po netu gledal tutoriale ni bilo nobenega strežnika in je aplikacija "jemala" podatke iz svoje baze znotraj aplikacije. -> popravite če se motim.

2. Če je to res, potem vsak ki downloada aplikacijo na svoj telefon ima tisto obstoječo bazo v njem. Edina možnost posodobitve in drugačnega prikaza zadetkov, je samo v primeru da si uporabnik posodobi aplikacijo z google play-a ( seveda ko avtor naloži novo posodobljeno verzijo)

3. Podatkovna baza na strežniku bi rešila ta problem, ker bi se uporabnik samo povezal na splet in pregledal zadetke.

4. Mogoče sem v celoti napačno razumel koncept SQLite baze na Androidu, vendar kar je tisti človek delal ni imelo nobenega strežnika in je to bazo predstavilo v celoti samo na telefonu in ne pa tudi iz interneta.

carota ::

1. Po vsej verjetnosti je tako.
2. Ne poznam Androida in Google Play-a, vendar je SQLite baza samo en file. Teoretično lahko vsakič, ko zalaufaš aplikacijo preneseš novo bazo iz serverja na Android. Tukaj bi bilo bolje, da bi samo ažurirane zadeve updejtal v lokalni bazi, če že moraš. Še enkrat, ne vem kako to deluje na Androidu.
3. Android aplikacije lahko berejo podatke iz neta iz za delovanje zahtevajo povezavo. Če imaš trgovino ali nekaj kar se dnevno updejta, je to najboljša rešitev.

noraguta ::

hah tuki je mal catchy zadeva. odvisno od same applikacije ampak couchdb bi načeloma lahko bil rešitev.
Pust' ot pobyedy k pobyedye vyedyot!

AaBoy ::

Jaz sem delal glede tega in sem mi je zdelo, da je bilo najbolj preprosto tako. Naredil sem spletni servis (Tomcat + axis2) v eclipsu EE, povezal z MySQL bazo preko knjižnice. Na androidu pa sem uporabil ksoap knjižnico, ki ti lepo pošilja podatke med telefonom in spletnim strežnikom. Pač to je najbolj preprosta zadeva, pošiljaš si sem pa tja navaden string. Tako, da ni potrebno znanje nekih ukazov ali kaj jaz vem drugega.

shadeX ::

aha. hvala AaBoy. Bom preštudiral celo zadevo skupaj. =)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Android preverjanje cene artiklov (strani: 1 2 3 )

Oddelek: Programska oprema
12818580 (9870) dacker
»

Online baza

Oddelek: Programiranje
242116 (1409) Yacked2
»

[PHP] Delo z večimi bazami (repliciranje)

Oddelek: Programiranje
12650 (540) keworkian
»

rabim pomoc pri bazah

Oddelek: Programiranje
91017 (810) FlashM
»

Backup podatkovnih baz

Oddelek: Omrežja in internet
152027 (1655) jype

Več podobnih tem