Я разрабатываю приложение для Android, которое обрабатывает много текста. Я смущен хранением и извлечением данных, какой из них следует использовать для более быстрого извлечения данных? Sqlite или хранилище файлов (json-файлы, отдельный файл для каждой категории). Сначала я подумал о sqlite, потому что управлять данными проще, но потребуется некоторое время для создания таблиц с почти 1000 строк в каждой таблице или я должен отправить базу данных с моим приложением, и это увеличит размер загрузки, а затем я подумал о хранении файла. Какой из них я должен использовать, sqlite или json-файл, поскольку создание данных является одноразовым процессом, а остальное - поиском? Может ли кто-нибудь предложить лучший способ, я действительно, действительно смущен.Лучший способ хранения и извлечения данных локально в android
ответ
Если предположить, что создание таблицы происходит только один раз, когда приложение установлено, то, если создание таблицы очень и очень медленно, вы можете просто сделать это при первой установке приложения и включить в него какое-то соответствующее сообщение пользователю.
В идеале, если ваше приложение может делать другие полезные вещи без использования данных, вы можете позволить пользователю использовать другие части приложения, пока создание таблицы завершается в фоновом режиме.
Я нашел из прошлого опыта, что создание очень больших простых таблиц на самом деле очень быстро, но вам нужно будет проверить, как долго ваши примеры берутся.
Обратите внимание, что у вас есть опция, используя метод onUpgrade для SQLiteOpenHelper, чтобы модифицировать только те части базы данных, которые вам нужны во время обновления, поэтому вам может не понадобиться воссоздать полную базу данных при установке новых версии приложения. Это также включает механизмы, позволяющие избежать задержки запуска приложений, отложив обновления до тех пор, пока база данных не будет использована впервые, хотя в этом случае это может быть не так.
Как насчет поиска данных? какой из них быстрее, sqlite или хранилище файлов? – Sony
Я думаю, что ответ, к сожалению, будет зависеть от ваших потребностей - если у вас нет сложных отношений и просто нужно читать в потоке байтов, тогда плоские файлы звучат интуитивно быстрее, но я все равно буду тестировать, поскольку интуиция может быть опасной в решениях расчета производительности вычислений (например, из-за того, что обычные медленные задачи нацелены на оптимизацию на более низких уровнях и заканчиваются намного быстрее, чем вы могли ожидать). Здесь также есть хорошее обсуждение: http://stackoverflow.com/a/2357027/334402 – Mick
Если у вас много текста и данных, используйте greenDAO. Он будет обрабатывать ваши связанные с SQLite вещи. Это немного запутанным в начале, но как только вы пробовали его, вы никогда не будете использовать SQLite на Android без него:
Некоторые интересные ссылки: http://developer.android.com/guide/topics/data/data-storage.html http://developer.android.com/training/basics/data-storage/index.html
Вам не нужно отправлять базу данных sqlite с вашим приложением, если она имеет только структуру и данные. Вы можете динамически создавать sqliteDatabase и создавать таблицы с использованием запросов – Sayka
использовать 'Sqlite' ofc – hrskrs
он должен содержать данные при первом запуске – Sony