Как установить или получить доступ к sqlite3 из оболочки adb

Мне нужен способ установить или каким-то образом получить доступ к sqlite3 в оболочке adb. Я укрепил свое устройство.

Я попытался найти ответ, но закрытое, что я смог найти, это:  Почему я получаю "sqlite3: not found" ошибка в корневом Nexus One при попытке открыть базу данных с помощью оболочки adb?

Но я не думаю, что это хорошая идея, чтобы подтолкнуть мои windows sqlite3.exe к Linux-системе?

Так можно ли как-то установить браузер терминала sqlite3?

[РЕШЕНИЕ]

Из разных комментариев и некоторых запросов в # android-dev (irc) я нашел решение. Сначала я скопировал файл базы данных на свой рабочий стол. Но кулак мне пришлось установить BusyBox, потому что cp не включен?!? После этого я столкнулся с проблемой, которую я не мог вытащить или никуда не выталкивать, кроме /sdcard/. Затем я мог бы использовать/sdcard/как "среднюю станцию" и тянуть/нажимать свой db.

Тогда я был измучен! Мне действительно нужно было изучить мой sqlite-терминал. Затем у меня возникла идея запустить эмулятор, вытащить двоичный код sqlite из /system/xbin/sqlite 3. Затем перемонтируйте/систему с помощью rw:

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system

и нажмите sqlite на /sdcard/, а затем скопируйте его в /system/xbin/

Теперь он работает: D

Ответы

Ответ 1

Я использую технику Rajath... Adb "Вытяните" db из эмулятора/устройства, работайте над ним, затем adb "нажмите" его обратно на/в эмулятор.

также: Я использую бесплатный редактор SQLite с Android Market. Я не укоренил свой LG Ally и поэтому может редактировать таблицы базы данных только на моей SD-карте с помощью редактора SQLite.

Раджат предлагает использовать adb, чтобы нажимать и вытаскивать базы данных в эмулятор/устройство. Работа над базой данных с программой windows (или что-то еще) sqlite3 у вас есть. Он не предлагает подталкивать windows sqlite3 на Android-устройство, IMHO.

Я отмечаю, что java/android "query()" посылает фактические команды SQL программно в одну программу с пользовательским вводом. Я пришел к выводу, что sqlite3 находится в Android где-то.

При использовании эмулятора доступны инструменты Dev Tools, а в нижней части списка - эмулятор терминала. Это позволяет исследовать файловую структуру Android в эмуляторе. Однако использование "оболочки adb" с ПК имеет корневые разрешения.

Удачи. Кактус Митч

Ответ 3

Вы можете сделать это с помощью оболочки adb без проблем.

В терминале или CMD (при условии, что у вас установлен путь ADB, а у вашего телефона есть ROOT):

  • $ adb shell
  • $ cd data/data/com.nameofyourpackage/databases/
  • $ ls to find the name of your database
  • $ sqlite3 nameofyourdb.db

Затем вы можете использовать .tables .schema, чтобы просмотреть данные, необходимые для создания соответствующего запроса.

Ответ 4

Вам не нужен root, чтобы вытащить базу данных с вашего устройства. Просто выполните следующие команды:

adb shell run-as <package-name> "cp databases/<db_name>.db /sdcard/ && exit"
adb pull /sdcard/<db_name>.db ~/Downloads/

Оттуда вы можете использовать sqlite3 для любой операционной системы, которую вы используете (http://www.sqlite.org/download.html), или SQL-браузер, такой как "Браузер DB для SQLite" (http://sqlitebrowser.org/)