1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Han Solo, 14.07.2010 #1
    Han Solo

    Han Solo Threadstarter Neuer Benutzer

    Hallo zusammen, ich bin neu hier!

    Gibt es eine Möglichkeit eine fertige sqlite Datenbank auszuliefern, sodass diese nicht erst beim ersten Start erstellt werden muss?

    Ich habe hier 10 Datenbanken mit jeweils 180.000 Einträgen und würde diese daher ungern von der App selbst erstellen lassen und direkt fertig mitliefern. Ist das möglich?

    Danke!
     
  2. TheEvilOne, 14.07.2010 #2
    TheEvilOne

    TheEvilOne App-Anbieter (In-App)

    Das muß sogar möglich sein. Viele Apps greifen auf eine Datenbank zu und da wäre es ja ein Unding, wenn man diese erst bei der Installation erzeugen bzw. mit Daten füllen müßte.

    Erzeugt man eine SQLite-DB, wird diese im System in eine Datei abgelegt (wo genau das weiß ich grad auch nicht, da müßte man nochmal in der Doku nachlesen). Diese kannst Du ja dann kopieren und mit ausliefern.
     
  3. MichaelS, 14.07.2010 #3
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Einfach die DB in den Ordner Asset legen ;) Von dort kannst du direkt laden oder diese auf die SD Card auslagern um darauf Updates zu fahren oder halt immer nen App Update machen, mit der neuen Version im Asset Ordner.
     
  4. TheEvilOne, 14.07.2010 #4
    TheEvilOne

    TheEvilOne App-Anbieter (In-App)

    Ich habe mir das jetzt auch mal angeschaut.

    Wenn ich eine SQLite Datenbank verwende wird diese ja in folgendem Verzeichnis abgelegt:

    /data/data/<packagename>/databases/<dbname>

    In einem anderen Thread habe ich gelesen, dass man im ContentProvider statt des DatabaseHelpers direkt die SQLiteDatabase verwenden kann.

    Ich habe jetzt eine Klasse erstellt, die von der Klasse SQLiteOpenHelper erbt. In der onCreate(SQLiteDatabase db) Methode werden über

    Code:
    db.execSQL("CREATE TABLE IF NOT EXISTS " ...
    
    die Statements ausgeführt, die die Tabellen anlegen. Kann mir jemand mal kurz anhand eines Beispiels zeigen/erklären, was ich nun tun muß, um dies (also das Erzeugen und Zugreifen der Datenbank im assets-Ordner) über den ContentProvider zu realisieren?

    Btw: Als Nachteil wurde bei dieser Methode beschrieben, dass wenn die Datenbank im assets-Ordner liegt, auch andere Programme darauf zugreifen können. Dies sei nicht möglich, wenn sie im oben angegebenen Programm-Pfad liegt.

    Danke und viele Grüße
     
  5. swordi, 14.07.2010 #5
    swordi

    swordi Gewerbliches Mitglied

    ich hab die ersten 500 bytes meiner sqlite db mit junk überschrieben

    und beim start tausch ich diese bytes durch die richtigen aus. so ist die db solange meine app sichtbar ist brauchbar. sobald was anderes in den vordergrund kommt, wird die db auf der sd karte wieder "zerstört" und niemand kann sie lesen.

    mitgeliefert hab ich die db nicht über asset ordner, sondern beim ersten start wird sie von einem server runtergeladen. hält die apk klein
     
    TheEvilOne gefällt das.
  6. TheEvilOne, 14.07.2010 #6
    TheEvilOne

    TheEvilOne App-Anbieter (In-App)

    Hey, super Idee. Das werd ich mir auf jeden Fall mal vormerken :)

    Btw: Was meine Anfrage im letzten Post angeht ist die Sache um ContentProvider doch etwas komplexer, weshalb ich von niemanden erwarten will, dass er mir das hier vorkaut. In dem Buch "Android - Grundlagen & Programmierung" ist das Thema ganz gut beschrieben und ich hab auch schon ein paar Beispiele ausgemacht.
     
    Zuletzt bearbeitet: 14.07.2010
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Keine doppelten Einträge in die Firebase Datenbank Android App Entwicklung 27.10.2017
[OFFEN] Übereinstimmung Spracherkennung Datenbank finden Android App Entwicklung 13.10.2017
[OFFEN] Komplette SQLite Datenbank verschlüsseln Android App Entwicklung 19.09.2017
[OFFEN] SQLITE insert gibt negative id zurück Android App Entwicklung 18.09.2017
[ERLEDIGT] Komplexe View erstellen Android App Entwicklung 13.09.2017
[ERLEDIGT] LL zur Laufzeit erstellen, Abstand zwischen LL und LL möglich ? Android App Entwicklung 06.09.2017
[ERLEDIGT] Wie erstelle ich einen Ripple Effekt ohne hintergrund Farbe? Android App Entwicklung 18.07.2017
[GESCHLOSSEN] Wie kann ich Kostenlos Apps erstellen? Android App Entwicklung 28.06.2017
[ERLEDIGT] APK erstellen Android App Entwicklung 11.06.2017
[OFFEN] Android Icon Pack dynamisch erstellen Android App Entwicklung 05.06.2017
Du betrachtest das Thema "sqlite Datenbank im Vorfeld erstellen" im Forum "Android App Entwicklung",