У меня есть приложение, которое использует большой объем данных, который был скомпилирован вне приложения (на моем основном ПК). Приложение предназначено для личного использования, поэтому нет никаких проблем с распространением обновлений данных для других пользователей. Тем не менее, в настоящее время я выполняю очень сложную и трудоемкую процедуру каждый раз, когда я хочу обновлять данные, и мне интересно, могут ли кто-нибудь предложить какие-либо способы ее оптимизации.Как обновить базу данных, используемую как источник данных приложением Android
Процедуры Я следую за каждый раз, когда я хочу, чтобы добавить новые данные следующим образом:
Я ввести новые данные в CSV-файл, который я сохранить в качестве источника соответствующей таблицы в базе данных
Я использую SQLite Database Browser для импорта данных в существующую базу данных SQLite. (Эта программа, похоже, не имеет возможности добавлять импортированные данные в существующую таблицу, поэтому всякий раз, когда требуется обновление таблицы, мне нужно удалить существующую таблицу, затем импортировать данные из файла csv в новую таблицу, а затем вручную отредактировать данные типы для всех полей в таблице.)
Перетащите значок файла базы данных в папку «assets» моего проекта в Eclipse.
Я экспортирую проект из Eclipse в файл apk.
скопировать файл АПК на мой телефон
(с помощью Astro файлового менеджера) я удалить старую версию приложения и установить новый APK.
При запуске приложения код на основании приведенного примера here копирует данные из папки «assets» в папку данных приложения; это означает, что каждый байт данных занимает два байта во внутренней памяти телефона; в настоящее время это не проблема, но может быть по мере роста объема данных; Интересно, есть ли более эффективный с точки зрения памяти метод?
Буду очень признателен за любые рекомендации.
Спасибо за ваш быстрый ответ! Запускает ли приложение приложение на телефоне прямо из Eclipse стереть существующую базу данных из папки данных приложения во внутренней памяти телефона? Я обнаружил, что при использовании эмулятора мне приходится вручную стереть данные. – prepbgg
Это хороший вопрос. Я не совсем уверен. Как я уже сказал, на самом деле я не имел дело с базами данных в Android. Я помню, что видел какой-то способ стереть базу данных, когда программа работает. Посмотрите, можете ли вы найти некоторые варианты запуска или что-то в этом роде. Я считаю, что есть флажок, который вы можете проверить, чтобы сообщить ему очистить базу данных. – Mike
Спасибо. Вероятно, это флажок, который я ищу. Хотел бы я знать, как его найти! Тем не менее, я все равно останусь со всеми другими утомительными шагами, перечисленными в моем исходном сообщении, когда я хочу обновить базу данных. Возможно, мне удастся написать код в моем приложении, чтобы добавить пункт меню, чтобы заблокировать отдельную таблицу и прочитать новые данные из файла на SD-карте. Должен быть, конечно, способ обновления данных без прохождения Eclipse? – prepbgg