2010-12-31 5 views
1

У меня Android 2.2 на моем телефоне, и я занимаюсь разработкой БД. Я пытаюсь запросить мою БД, используя sqlite3, но похоже, что на моем телефоне отсутствует sqlite3. Итак, я попробовал несколько других команд (su, find и т. Д.), И они, похоже, отсутствуют.Команды Android ADB отсутствуют

Может ли кто-нибудь сказать мне, куда они пошли, пожалуйста? Я где-то читал, что sqlite3, по крайней мере, случайно был исключен из 2.2, но, конечно же, они не могут быть пропущены, не так ли?

Благодаря

+0

Потребителям обычно не нужны 'su' и' sqlite3' и т. Д., Поскольку нет необходимости, то есть вы не можете получить доступ к '/ data/data' как обычный пользователь. Эмуляторы, Android-телефоны разработчиков и пользовательские диски вообще * делают * включают эти двоичные файлы. –

ответ

0

С новым выпуском, ADB переехал в platform-tools в то время как все другие инструменты все еще находятся в tools папке.

Вы можете либо скопировать их, либо добавить их в Windows Path (если вы используете окна).

+0

Спасибо Aliostad, я нашел sqlite3.exe сейчас. Но в документах google предлагается подключиться к моему телефону с помощью «adb -d shell», а затем выпустить команды sqlite3 для подключения к db моего приложения. Я скопировал sqlite3.exe в папку платформы-tools, а также добавил его на свой путь, но когда я перехожу в оболочку ADB, я получаю «sqlite3: not found». В стороне, это причина, по которой я не могу «su» и «найти», потому что мой телефон не укоренен? Немного новичок в этом, как вы можете сказать ... – Richard

+0

Шахта работает без копирования или установки пути. Я удивлен. Но да, это причина, по которой телефон не укоренен. Можете ли вы использовать sqlite3 для эмулятора? – Aliostad

+0

Я могу sqlite3 в db на моей локальной файловой системе, но я хотел бы получить доступ к той, что есть на моем телефоне. Это команды, которые я хочу выпустить (взятые из документов): $ adb -s emulator-5554 shell # sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db – Richard

0

Try:

$ adb -s <serialno> shell type sqlite3 
sqlite3 is /system/xbin/sqlite3 

, чтобы определить, если sqlite3 доступен или нет на вас устройство.

Команда, которую вы вошли в один из ваших комментариев в неправильном формате, оно должно быть (после того, как вы определили, что sqlite3 доступен):

$ adb -s <serialno> shell sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db 
SQLite version 3.6.22 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> 
0

Это не ADB команды те двоичные файлы, как правило, устанавливаются на укорененных устройств , Если ваше устройство не внедрено, вы также не сможете их установить.

Однако, что вы можете сделать, чтобы попасть в вашу базу данных приложений. Используйте команду менеджера активности set-debug-app [options] <PACKAGE> Это позволит вам получить доступ к базе данных ваших приложений без корневого ввода, затем вы можете вытащить ее на рабочий стол и использовать там sqlite3.

Что-то вроде этого:

adb shell 
am set-debug-app com.example.appname 
exit ##exit adb shell 
adb pull data/data/com.example.appname/databases/exampledb.db exampledb.db 
sqlite3 exampledb.db 

Ваше приложение должно быть установлено в отладке верно в манифесте для этой работы.

Смежные вопросы