Moje pytanie jest dość proste, ale nie sądzę, że odpowiedź będzie ... Mam dość dużo treści, które mam w mojej aplikacji aby działał poprawnie, i myślę o umieszczeniu tego wszystkiego w bazie danych, i rozprowadzam go w osadzonej bazie danych z aplikacją na rynku. Jedyny problem polega na tym, że nie mam pojęcia, jak to zrobić. Wiem, że mogę wyodrębnić plik .db z Eclipse DDMS z zawartością mojej bazy danych, i przypuszczam, że muszę umieścić go w folderze zasobów mojej aplikacji, ale potem jak sprawić, by aplikacja użyła go do ponownego wygenerowania aplikacji Baza danych? Jeśli masz jakiś link do jakiegoś kodu lub pomocy, byłoby wspaniale. DziękiOsadź bazę danych w pliku .apk aplikacji rozproszonej [Android]
Odpowiedz
dobrze osiągnąć co pytasz, można umieścić plik db w aktywa/katalogu i skopiować go na miejsce po raz pierwszy uruchomić aplikację .....
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();
}
Gdzie "initialiseDatabase" to jakaś flaga wskazująca, czy aplikacja została uruchomiona po raz pierwszy.
Mimo że, patrząc na przechowywanie dużej ilości danych, jak wspomniałeś: zdecydowanie zalecam unikanie nadpisywania pliku APK i używanie połączenia internetowego do pobierania rekordów bazy danych (z hostowanego serwera) po aplikacja została uruchomiona. W ten sposób możesz pokazać pasek postępu wskazujący użytkownikowi, dlaczego długo czeka na rozpoczęcie korzystania z aplikacji. Sprawienie, że APK jest szczególnie duży, zazwyczaj zniechęca ludzi do instalowania go w pierwszej kolejności.
Można zaimplementować rozwiązanie typu middle-of-road: Użyj powyższej metody, ale zamiast dystrybuować plik db, umieść go gdzieś na serwerze. Z mojego doświadczenia wynika, że pobieranie plików zajmuje tylko 10% czasu przetwarzania, pozostałe to przetwarzanie i serializowanie obrazów do db
Właściwie moim celem było uniknięcie umieszczania go na serwerze i wymuszania pobierania bezpośrednio po instalacji aplikacji ... – Sephy
Rozumiem. Rozważałem to dla mojej aplikacji, ale potem przyjrzałem się rozmiarowi db i jego kolejnym + 350K. Ludzie mają w tym dużo dezorientacji, ale jeśli masz przyzwoite połączenie, to z pewnością będzie to szybsze niż fragmentaryczne pobieranie z późniejszym przetwarzaniem – Bostone
- 1. Jak usunąć bazę danych w aplikacji Android
- 2. Podpisywanie APK aplikacji Android?
- 3. Zarządzaj sesją w aplikacji rozproszonej
- 4. Generowanie pliku apk dla aplikacji meteorologicznej
- 5. Osadź plik w pliku EXE w VB6
- 6. Jak zaimplementować bazę danych w aplikacji PhoneGap?
- 7. Android - użycie DexClassLoader do załadowania pliku APK
- 8. Osadź aplikację angularjs w innej aplikacji angularjs
- 9. Android Expansion apk
- 10. Dostosuj istniejącą bazę danych do aplikacji django
- 11. Android otwórz lub utwórz bazę danych
- 12. Jak załączyć bazę danych bez pliku LDF?
- 13. Przeczytaj ApplicationManifest aplikacji systemu Android (apk) przy użyciu .NET
- 14. Sprawdź bazę danych w JPA
- 15. Jak zabezpieczyć webservices URL w android pliku apk
- 16. Prześlij wersję roboczą pliku APK bez zakłócania opublikowanego pliku APK?
- 17. Zgłaszający bazę danych Log4j
- 18. OSGi w infrastrukturze rozproszonej
- 19. Eclipse dla Androida: jak zautomatyzować "Eksportowanie aplikacji Android" do apk?
- 20. Osadź VBScript wewnątrz pliku wsadowego Windows
- 21. Jak zsynchronizować bazę danych Android z internetowym serwerem SQL?
- 22. Jak wstępnie wypełnić bazę danych w uruchomieniu aplikacji Phoenix?
- 23. Pisanie rozproszonej kolejki w dynamoDB firmy Amazon
- 24. Którą bazę danych należy użyć w pliku node.js?
- 25. Android start intent view apk
- 26. Czy mogę rozszerzyć bazę danych kontaktów Androids?
- 27. Android, instalacja apk INSTALL_FAILED_POLICY_REJECTED_PERMISSION
- 28. Konwertuj regularną bazę danych Postgres na przestrzenną bazę danych
- 29. android zapobiec apk
- 30. Którą bazę danych bazy danych w chmurze powinienem użyć w mojej aplikacji na Androida?
Cóż, wcześniej korzystałem z paska postępu, ale ponieważ pobieram dużo obrazów i parsuję kilka XML , zajmuje sporo czasu, zwłaszcza, gdy używasz sieci 3G zamiast WiFi – Sephy
czy nie byłoby łatwiej po prostu sprawdzić, czy baza danych już istnieje, zamiast używać boolean? Jak śledzić wartość logiczną, gdy aplikacja jest wyłączona? wpis w DB? – Sephy
To jest dokładnie to, co reprezentuje boolean, zostawiłem to jako ćwiczenie implementacyjne. Zaktualizowałem przykładowy kod o tym, jak możesz to zrobić. – seanhodges