Я прочитал ответ на вопрос о том, как получить доступ к содержимому баз данных, однако, похоже, не могу получить это работать на моей машине. Вот журнал оболочки:
C:\android-sdk-windows\tools>adb -s emulator-5554 shell
# sqlite3 /data/data/com.android.demo.notepad2/databases/notes
sqlite3 /data/data/com.android.demo.notepad2/databases/notes
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .tables
.tables
sqlite> ^C
C:\android-sdk-windows\tools>
SQLite просто возвращает мне мои команды, даже несмотря на то, что файловый браузер Eclipse сообщает мне, что он существует. Если я использую инструмент sqlite3 и использую «.tables», команды будут приняты.
Отличается ли синтаксис SQLite в эмуляторе, если я что-то упустил?
(Извините за столько вопросов, Похоже, что в Android очень много согласованной документации!)
Спасибо!
Могу сказать, что он отлично работает на Android 2.0.1:
$ adb shell
# cd /data/data/apt.tutorial
# ls
lib
databases
shared_prefs
# cd databases
# ls
lunchlist.db
# sqlite3 lunchlist.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .tables
android_metadata restaurants
sqlite> .exit
# exit
Вы всегда можете скачать файл базы данных с помощью DDMS или adb pull
и воспользоваться десктопным SQLite клиентом для его изучения. Например, я использую плагин SQLite Manager для Firefox.
Также помните, что SQLite не имеет расширения файла по умолчанию, поэтому если ваша база данных не notes
, а notes.db
или notes.sqlite
или что-то в этом роде, вам нужно будет указать расширение.
Также, я не пробовал это на Windows, и есть вероятность того, что есть что-то глупое с командной строкой Windows и ограниченной оболочкой, доступной на Android устройствах, что вызывает у вас затруднения.
.Если вы хотите выдавать sqlite3 операторы из командной строки, используйте что-то вроде
$ adb -e shell sqlite3 -batch /data/data/com.example.dbsample/databases/db '.tables'
android_metadata
$ adb -e shell sqlite3 -batch /data/data/com.example.dbsample/databases/db 'select * from android_metadata;'
en_US
, очевидные преимущества заключаются в том, что вы можете положиться на вашу историю оболочки, и вы можете использовать ее в скриптах.
.