Vollständige Version anzeigen : Android Datenbankverbindung


newyork
30.03.2014, 19:52

Moin Leute,

ich hab vor eine Android App zu entwickeln, welche sich zu einer DB verbindet und damit entsprechend arbeiten kann(Abfragen und Ändern der Daten).
Hab als erstes an SQLite gedacht, da SQLite ja toll mit Android funktionieren soll. Ich hab allerdings das "Problem" das ich eine zentrale Datenbank haben will, welche dann von z;B. 10 Benutzern an 10 Geräten bearbeitet werden soll und SQLite legt die Datenbank ja lokal an. Eigentlich wollte ich dann auf MySQL umsteigen, dann habe ich vom ContentProvider für SQLite gelesen, habe bislang aber nicht vernünftig rausfinden können ob der ContentProvider auch nur lokal(Beispiel Kontaktdaten) zur Verfügung stellt, oder ob ich damit entfernt auf eine zentrale DB zugreifen kann. SQLite ist ja an sich keine Server/Client Datenbank.

Hat jemand eine Lösung parat wie ich das ganze mit SQLite umsetzen könnte, oder muss/soll ich auf MySQL umsteigen?

Gruß

nY

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
MasterJulian
30.03.2014, 20:05

Vorweg: Ich habe noch keine Smartphone Apps entwickelt.
Wenn du über verschiedene Geräte auf die gleiche Datenbank zugreifen willst, würde ich diese nicht direkt anbinden (egal welches DBMS). Ich würde einen Zentralen Server aufsetzten und den Zugriff via HTTP(s) und nem PHP/Pyhton/Ruby whatever Skript lösen. So hast du wesentlich mehr Kontrolle was den Zugriff anbelangt und kannst von vornherein ggf. schadhafte Abfragen abfangen.


newyork
30.03.2014, 20:26

Wie wäre denn der Aufwand wenn ich PHP als Schnittstelle zwischen Android und dem Server nehmen würde?
Mit der Android Entwicklung und Java an sich kenn ich mich aus, aber PHP Kenntnisse sind extrem minimal.


MasterJulian
30.03.2014, 20:56

Das kommt wohl darauf an wie gut du dich in andere Sprachen einarbeiten kannst. Mein PHP ist auch nicht sonderlich, aber ich würde jetzt mal nen Nachmittag für rudimentäre Funktionen ansetzten. Gibt ja genug via Google zu finden.
Mehr als Spekulation und Kaffeesatzlesen ist das aber nicht. Aufwandsabschätzung ist eine Wissenschaft für sich.


xolox
30.03.2014, 21:43

Mit der Android Entwicklung und Java an sich kenn ich mich aus, aber PHP Kenntnisse sind extrem minimal;

Wie wäre es denn dann mit einem Java Webservice?
Das braucht dann allerdings ein bisschen mehr Infrastruktur (zusätzlich z;b. einen tomcat) als eine reine PHP Geschichte.

Hier mal ein Tutorial dazu: REST with Java (JAX-RS) using Jersey - Tutorial (;;;vogella~com/tutorials/REST/article;html)


newyork
31.03.2014, 22:23

Also an sich hab ich nicht wirklich ein Problem damit andere Sprachen zu lernen, mir gehts mehr um die Umsetzung an sich.
Mein Projekt besteht aus Datenbank + Android + GPS. Wenn ich PHP als Schnittstelle zwischen der DB und der Android App benutze ist das für mich irgendwie zuviel drumherum, dann würde die Android app ja quasi nur aus Design + Aufruf der PHP Scripts bestehen und ich hätte es gerne etwas "kompakter" im Gesamten, also das Quasi die Hauptfunktion in der App umgesetzt wird und die Daten in der DB gespeichert sind...

Hab mir das mit dem REST mal angeschaut, ich denke das könnte irgendwie den Rahmen des "kleinen" Projekts sprengen.

Habe nochmal etwas über Funktion und Struktur der App nachgedacht, 95% der Daten aus der DB sind fix, werden also nicht geändert, es gibt momentan nur eine Variable die vom Benutzer per App eingetragen bzw. geändert werden kann.

Was haltet ihr von folgendem Lösungsansatz?:

-App starten und Werte werden von der MySQL DB geholt(meinent wegen PHP oder andere Skriptsprache wie Ruby, Python..;)
-Daten werden lokal in einer SQLight DB gespeichert(spart extrem Traffic für zukünftige Nutzung der App)
-Beim erneuten Starten der App werden GPS koordinaten lokalisiert und eine Abfrage der naheliegensten Orte geschieht lokal mit der SQLight DB

Bleibt nurnoch die Umsetzung der Änderung der einen Variable, entweder wird diese nach Änderung lokal in der SQLight DB gespeichert und direkt darauf wird die SQLight DB mit der MySQL DB verglichen(bzw. nur die variable wird verglichen) und entsprechend geändert falls das möglich ist. Oder die Änderung geschieht mit JDBC von der App aus direkt auf der MySQL Datenbank und beim nächsten Starten der App wird geprüft ob sich Daten geändert haben und diese werden dann neu von der MySQL DB geholt und die vorhandene SQLight DB wird aktualisiert.

Wobei eine direkte Verindung bzw ein direktes Arbeiten des Benutzers auf der Datenbank ja nicht zu empfehlen wäre, wobei ich momentan nicht weiß ob JDBC da eine Lösung mitliefert.


Ähnliche Themen zu Android Datenbankverbindung
  • Android Neustart-Schleife nach Update - Android zurücksetzen
    Hallo zusammen Ich habe ein unheimlich nervendes Problem mit meinem neuen Galaxy Tab 2 7;0. Zur Zeit kann ich das Tablet selten mehr als 10 min nutzen, da es sich dann aufhängt und neustartet. Hab auch schon von einigen anderen von diesem Problem gehört. Problem bei mir ist jetzt, dass es [...]

  • Samsung Galaxy Tab 3 7Zoll manuell Android updaten? Und kleinere Android fragen
    Zum einen wollte ich wissen ob und wie man bei einem galaxy tab 3 7 zoll manuell eine aktuelle android version aufspielen kann, da ich ein stablet von 1und1 hab aber dort keine updates nach 4;1;x möglich sind;d;h. es wird angezeigt es ist die aktuellste verfügbare version. edit: ich las gerade da [...]

  • [VisualBasic] MYSQL Datenbankverbindung ...
    Hallo Leute ... Ich brauche dringend eure Hilfe :D Wir haben in der Schule die Aufgabe als Programmierprojekt einen VB . net Terminplaner zu entwickeln der mithilfe einer MySQL Datenbank arbeitet! Unser Problem ist, dass wir mit dieser Schnittstelle keinerlei Erfahrung haben ^^ Also was [...]

  • [C#] Software / Datenbankverbindung?
    Hallo, wie wird bei Programmen eigentlich abgesichert, dass die Datenbankzugangsdaten oder ähnliche sensible Informationen ausgelesen werde? Gibt es da bestimmte Verschlüsselungs Protokolle? Danke [...]



raid-rush.ws | Imprint & Contact pr