Я собирал информацию на этом сайте и другие о том, как лучше всего добавить в Android предварительно заполненную базу данных sqlite. Я просто хотел бы подтвердить, что я понял причины того, почему что-то должно быть тривиально ... это не так.Предварительно заполненные базы данных в Android: Попытка собрать фрагменты
Так может кто-то пожалуйста, скажите мне, если мои следующие выводы правильными или неправильными ?:
- главная причина многих людей предполагают копирование предварительно заселена файл базы данных из папки активов в «/ данные/данные/YOUR_PACKAGE/databases/"есть потому, что есть никак не для доступа к файлу базы данных в папке с активами или делать это слишком сложно (?). (Может кто-то уточнить, какой из этих двух ответов является правильным?)
- еще одна важная причина, по которой файлы базы данных в папке с ресурсами должны быть скопированы в другом месте, потому что файлы в этом месте не могут быть обновлены. Тогда даже если база данных в папке с ресурсами может быть открыта, это было бы полезно, только если такую базу данных не нужно изменять. ОБНОВЛЕНИЕ:Я запустил новую тему, сосредоточенную только на этом вопросе:Opening a read only database directly in the assets folder.
- Файлы в папке с ресурсами могут быть только размером 1 Мб (если у них нет определенных расширений файлов, таких как mp3). Обратите внимание, что это ограничение не имеет значения, если: ваша база данных меньше, чем 1 Мб, или вы не возражаете разделять вашу базу данных в кусках 1 МБ и сгруппировать их во время выполнения, или вы не против распространения файла базы данных с расширением mp3.
- Если файл базы данных скопирован из папки активов в «/ data/data/YOUR_PACKAGE/databases /», нет способа удалить исходный файл базы данных в папке с ресурсами, чтобы избежать дублирования файла. Это также связано с тем, что файлы в папке с ресурсами не могут быть изменены.
Создание головоломки немного более сложная: я нашел в комментариях к принятому ответу этого вопроса: Ship an application with a database , что копирование базы данных из папки активов в другое место, на самом деле не работают на некоторых устройствах, работающих под управлением 2.3 +. Это точно? Если это так, то лучшей альтернативой может быть загрузка файла базы данных из Интернета при первом запуске?
Спасибо за любое разъяснение.
прочитайте этот одноклассник http://www.mail-archive.com/[email protected]/msg28194.html существуют ограничения по размеру для ресурсов/необработанных папок. –
все в папке с ресурсами статично и не может быть изменено, поэтому вам нужно скопировать. –
активы, xml drawables и другие такие ресурсы являются частью apk, поэтому они не могут быть программно обновлены. И root-разрешение для просмотра данных - это «данные/данные» –