Как установить или получить доступ к 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" с ПК имеет корневые разрешения.
Удачи. Кактус Митч
Ответ 2
Загрузить это приложение из игры Google поможет вам установить sqlite3 на android https://play.google.com/store/apps/details?id=ptSoft.util.sqlite3forroot
Ответ 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/)