Каким образом Android-приложения могут использовать локальную базу данных SQLite без её прямой установки на ОС?

Во времена, когда я изучал программирование под Andorid я обратил внимание на то, что работа с локальной базой SQLite данных в Andorid SDK упрощена до предела: эффект был такой, как будто мы просто читали данные из внешнего XML-подобного файла, то есть не устанавливали никаких баз данных ни на компьютер ни на смартфон, не указывали никаких localhost-ов и портов, не указывали никаких логинов и паролей - всё просто работало из коробки. Теперь мне бы хотелось, чтобы эта магия была доступна и в моих JavaFX-приложениях, но ввиду того, что на данный момент моя профессия - фронтенд веб-разработчик, в базах данных я разбираюсь пока очень слабо и реализацию этой магии в один вопрос не уместить.

Первый мой вопрос в этих изысканиях будет о том, каким образом собранные Android-приложения могут использовать SQLite. Мы же ведь не устанавливали её на смартфон! С точки зрения логики это отнюдь неочевидно, и у меня как минимум две версии:

  1. SQLite встроена в собранное приложение
  2. SQLite предустановлена на OS Android

Если я создам приложение на JavaFX, использующее SQLite, а потом соберу его и попытаюсь запустить на другом компьютере, то скорее всего это закончится тем, что приложение работать не будет - базы данных-то нет. Почему же такой проблемы не возникает при разработке на Android и всё работает как часы, как будто мы просто читаем файл?

На всякий случай подчеркну, что данный вопрос не имеет никакого отношения к удалённым базам данных, к которым нужно реально подключаться через интернет. Речь идёт о локальном хранении и чтении данных в виде таблиц SQLite.


Ответы (0 шт):