Frage

Meine Frage ist, ich denke ganz einfach, aber ich glaube nicht die Antwort sein wird ... Ich habe ziemlich vielen Inhalt in meiner Anwendung zu haben, damit es richtig laufen, und ich denke an all das in einer Datenbank setzen und verteilt es in einer eingebetteten Datenbank mit der Anwendung in der Markt. Das einzige Problem ist, dass ich keine Ahnung, wie das zu tun. Ich weiß, dass ich eine Datei Db von Eclipse-DDMS mit dem Inhalt meiner Datenbank extrahieren kann, und ich glaube, ich muß es in dem Asset-Ordner meiner Anwendung setzen, aber dann, wie die Anwendung Gebrauch zu machen, die Anwendungsdatenbank zu regenerieren ? Wenn Sie einen Link zu einem gewissen Code oder Hilfe haben, das wäre toll. Dank

War es hilfreich?

Lösung

Nun zu erreichen, was Sie fragen, können Sie die Db-Datei in Ihrem Vermögen / Verzeichnis setzen könnte und kopieren Sie sie in Position das erste Mal, wenn Sie Ihre Anwendung starten .....

final String DB_DESTINATION = "/data/data/YOUR_PACKAGE_NAME/databases/MyDatabaseFile.db";

// Check if the database exists before copying
boolean initialiseDatabase = (new File(DB_DESTINATION)).exists();
if (initialiseDatabase == false) {

    // Open the .db file in your assets directory
    InputStream is = getContext().getAssets().open("MyDatabaseFile.db");

    // Copy the database into the destination
    OutputStream os = new FileOutputStream(DB_DESTINATION);
    byte[] buffer = new byte[1024];
    int length;
    while ((length = is.read(buffer)) > 0){
        os.write(buffer, 0, length);
    }
    os.flush();

    os.close();
    is.close();
}

Wo „initialiseDatabase“ ist einige Kennzeichen, das anzeigt, ob die App zum ersten Mal gestartet wurde.

Obwohl, wenn Sie auf Speichern eine Menge Daten suchen, wie Sie erwähnt: Ich empfehlen Ihnen dringend zu vermeiden, dass die APK-Datei Blähungen mit ihm, und verwenden Sie die Internetverbindung die Datensätze der Datenbank zum Download (von einem gehosteten Server) nach der App wurde ins Leben gerufen. Auf diese Weise können Sie einen Fortschrittsbalken zeigen den Benutzer anzeigt, warum sie eine lange Zeit warten, um die App zu beginnen. die APK besonders groß zu machen schreckt Menschen in der Regel von ihm an erster Stelle zu installieren.

Andere Tipps

Sie können die middle-of-the-road implementierende Lösung: Verwenden Sie Ansatz oben, sondern Datei zu verteilen db legte es auf Server irgendwo. Nach meiner Erfahrung immer Dateien ist nur 10% der Zeit der Verarbeitung, Rest ist das Parsen und Serialisieren Bilder zu db

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top