Нужно каким то образом при первом запуске создавать БД с рецептами блюд, чтобы затем их просто подгружать из БД и все. Как это можно сделать? Или может запихнуть БД в сам apk?
Можно поместить готовую БД в APK. Это предпочтительнее, потому что на компьютере подготоваить БД проще и есть возможность нормально протестировать запросы, перед тем, как использовать для выборки курсоров.
Для заполнения и тестиривания БД я пользовался SQLite Expert Personal Edition - бесплатный и довольно мощный менеджер баз SQLite, выполняющий практически все функции, которые есть в платных аналогах. Можно там и запросы протестировать, получив наглядный результат, а не курсор, в который не посмотришь.
Готовая база данных ложится в каталог /assets приложения простым копированием файла в эту папку проекта, но работать оттуда она не может, так как эта папка для статических (неизменяемых) ресурсов и должна быть скопирована в раздел на устройстве, выделенный для вашего приложения (обычно /data//data/<package_name>/databases/
), где вашему приложению разрешена запись и прочие операции работы с файлами.
Сделать это можно с помощью собственного кода (пример) или готовой библиотеки android-sqlite-asset-helper, что предпочтительнее (тогда база ложится в каталог assets/database/ приложения)
После копирования пользоваться этой БД нужно точно так же, как если бы она была создана прямо на устройстве. Фактическая разница только в том, что в первом случае БД туда копируется, во втором изначально создается там.
PS: Если размер начальной БД (то, что вы помещаете в каталог assets/) более одного мегабайта, то расширение для БД должно быть указано, как для несжимаемого типа данных (*.png, *.mp3), а не *.bd или там *.sqlite - это связано с тем, что каталог assets/ подвергается сжатию и существует ограничение на размер файлов для этой операции в 1 Мб.
Можно так же и заполнить БД прямо на устройстве. Для этого придется создать какую то структуру с данными, вроде XML или JSON файла, распарсив который вы будете заполнять свою БД запись за записью. Это дольше на первом старте приложения, чем копирование готовой БД и не так удобно для тестирования, но несколько меньше по итоговому размеру APK и не имеет никаких ограничений по начальному размеру БД.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Существует 7 вариантов опции cascade у HibernateХотелось бы уточнить какого именно поведения ожидать от каждой из них
Заметил такую проблему на андройде 41