Meine Frage ist, denke ich, ziemlich einfach, aber ich denke nicht, dass die Antwort sein wird ... Ich habe ziemlich viel Inhalt in meiner Anwendung zu haben um es richtig laufen zu lassen, und ich denke, alles in eine Datenbank zu setzen, und verteilt es in einer eingebetteten Datenbank mit der Anwendung auf dem Markt. Das einzige Problem ist, dass ich keine Ahnung habe, wie das geht. Ich weiß, dass ich eine Datei .db von Eclipse DDMS mit dem Inhalt meiner Datenbank extrahieren kann, und ich nehme an, ich muss es in den Asset-Ordner meiner Anwendung legen, aber dann wie die Anwendung es verwenden, um die Anwendung neu zu generieren Datenbank? Wenn Sie einen Link zu Code oder Hilfe haben, wäre das großartig. DankBetten Sie eine Datenbank in die .apk einer verteilten Anwendung ein [Android]
Antwort
Gut zu erreichen, was Sie fragen, könnten Sie die Db-Datei in Ihr Vermögen/Verzeichnis abgelegt 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();
}
Wobei "initialiseDatabase" ein Flag ist, das angibt, ob die App zum ersten Mal gestartet wurde.
Obwohl, wenn Sie viele Daten speichern möchten, wie Sie erwähnten: Ich empfehle dringend, vermeiden Sie die APK-Datei damit aufgebläht, und verwenden Sie die Internetverbindung, um die Datenbank Datensätze (von einem gehosteten Server) nach Die App wurde gestartet. Auf diese Weise können Sie einen Fortschrittsbalken anzeigen, der dem Benutzer anzeigt, warum er lange auf die Verwendung der App wartet. Wenn APK besonders groß gemacht wird, werden die Leute normalerweise davon abgehalten, es zu installieren.
Sie können eine mittlere Lösung implementieren: Verwenden Sie den obigen Ansatz, aber anstatt die db-Datei zu verteilen, legen Sie sie irgendwo auf dem Server ab. Meiner Erfahrung nach Dateien zu bekommen ist nur 10% der Bearbeitungszeit, der Rest ist das Parsen und Serialisieren von Bildern zu db
Eigentlich war mein Zweck, es zu vermeiden, es auf einen Server zu setzen und einen Download direkt nach der Installation der Anwendung zu erzwingen ... – Sephy
Ich verstehe. Ich habe es für meine App in Erwägung gezogen, aber dann habe ich db size und seine weitere + 350K angesehen. Die Leute wurden empfindlich, aber wenn Sie eine anständige Verbindung haben, ist es definitiv schneller als ein stückweises Herunterladen mit anschließender Verarbeitung – Bostone
- 1. So betten Sie eine Satellitenbaugruppe in die EXE-Datei ein
- 2. Öffnen Sie die Datenbank einer anderen Anwendung?
- 3. Betten Sie Facebook-Posts in Android Webview ein
- 4. Android-Anwendung APK Unterzeichnung?
- 5. So betten Sie eine Umfrage in eine Webseite ein
- 6. Spring Security in einer verteilten Anwendung
- 7. Suche nach einer verteilten Schlüsselwert-Datenbank für die Persistenz
- 8. Wie betten Sie Binärdaten in XML ein?
- 9. Merging Eingänge in verteilten Anwendung
- 10. Betten Sie xsl in eine XML-Datei ein
- 11. Wie betten Sie ein Bild in einen NSAttributedString ein?
- 12. Betten Sie eine Webseite/Seite in Silverlight ein
- 13. betten Sie eine drupal gmap-Ansicht auf anderen Seiten ein
- 14. So betten Sie eine Flash-Anwendung in eine Website ein, auf der sich die Anwendungsdatei auf einem Remote-Server befindet
- 15. Wie Konfiguration in verteilten playframework Anwendung ändern
- 16. Legen Sie die Lautstärke einer Android-Anwendung
- 17. Android-Anwendung mit einer Webserver-Datenbank verbinden
- 18. Betten Sie den Inhalt einer RTF-Datei in eine DOCX-Datei mit OpenXML SDK ein
- 19. Kann Android-Anwendung die Datenbank exportiert werden?
- 20. Legen Sie ein Bild als Hintergrund in einer Android-Anwendung
- 21. So betten Sie eine Flash-Datei in ein Rails-Projekt ein
- 22. So öffnen Sie eine Android-Anwendung
- 23. Wie betten Sie andere Programmiersprachen in Ihren Code ein?
- 24. So betten Sie Ruby in JavaScript ein (Rails + .html.erb-Datei)
- 25. Betten Sie Google Earth in Desktop-Anwendungen anstelle von Websites ein. Ist QT eine echte Option?
- 26. Wie betten Sie Albumcover mit Python in MP3 ein?
- 27. So fügen Sie eine vorhandene Datenbank in Android Project ein
- 28. Betten Sie einen Kalender in meine Website ein
- 29. Android Wearable apk update
- 30. So betten Sie eine QML-Ansicht in ein natives Fenster ein
Nun, ich habe einen Fortschrittsbalken vor, aber wie ich viele Bilder herunterladen und mehrere XML-Parsing es dauert ziemlich viel Zeit, besonders wenn Sie das 3G-Netzwerk anstelle von WLAN verwenden – Sephy
wäre es nicht einfacher zu überprüfen, ob die Datenbank bereits vorhanden ist, anstatt den booleschen Wert zu verwenden? Wie kann ich den Booleschen Wert verfolgen, wenn die Anwendung heruntergefahren wird? Eintrag in der DB? – Sephy
Das ist genau das, was der Boolean darstellt, ich habe das als eine Implementierungsaufgabe verlassen. Ich habe den Beispielcode mit der Vorgehensweise aktualisiert. – seanhodges