2010-12-31 3 views
1

저는 휴대 전화에 Android 2.2가 있으며 일부 DB 개발을하고 있습니다. 나는 sqlite3을 사용하여 내 DB를 쿼리하려고했지만 sqlite3이 내 전화에서 누락 된 것 같습니다. 그래서 몇 가지 다른 명령을 시도했는데 (su, find 등), 모두 빠져있는 것처럼 보입니다.Android ADB 명령이 누락되었습니다.

아무도 말해 줄 수 있습니까? 나는 어딘가에 sqlite3 적어도 2.2 실수로 떠날 수도 있지만 확실하게 그들은 모두 놓칠 수없는 그들은 읽을 수 있습니까? 다른 모든 도구 tools 폴더에 여전히 동안

감사

새로운 출시와 함께
+0

소비자는 일반적으로 'su'와 'sqlite3'등을 사용할 필요가 없으므로 일반 사용자로'/ data/data'에 액세스 할 수 없습니다. 에뮬레이터, Android 개발자 폰 및 맞춤 ROM은 일반적으로 이러한 바이너리를 포함합니다. –

답변

0

는, ADB는 platform-tools로 이동했습니다.

(창을 사용하는 경우) Path에 복사하거나 추가 할 수 있습니다.

+0

감사합니다. Aliostad, 지금 sqlite3.exe를 발견했습니다. 하지만, 구글 워드 프로세서는 "adb -d shell"을 사용하여 내 전화기에 연결 한 다음 sqlite3 명령을 내 앱의 db에 연결하도록 제안합니다. sqlite3.exe를 platform-tools 폴더에 복사하고 경로에 추가했지만 ADB 쉘로 갈 때 "sqlite3 : not found"가 표시됩니다. 제쳐두고, 내 전화가 뿌리가 없기 때문에 내가 'su'와 'find'할 수없는 이유가 무엇입니까? ... – Richard

+0

광산은 복사 또는 설정 경로없이 작동합니다. 나는 놀랐다. 하지만 예 su는 전화가 뿌리가 내리지 않는 이유입니다. 에뮬레이터에 대해 sqlite3을 사용할 수 있습니까? – Aliostad

+0

내 로컬 파일 시스템의 db에 sqlite3을 연결할 수 있지만 내 전화에서이 파일에 액세스하고 싶습니다. 다음은 명령 (문서에서 가져온 것)입니다. $ adb -s emulator-5554 shell # sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db – Richard

0

시도 : sqlite3 가능 여부를 당신이 장치에있는 경우

$ adb -s <serialno> shell type sqlite3 
sqlite3 is /system/xbin/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 

앱이 필요합니다 이것이 작동하려면 매니페스트에 진정한 디버깅하도록 설정할 수 있습니다.

관련 문제