Android Studio에서 ADB를 사용하여 SQLite DB를 보는 방법
내 SQLite db를보아야하는데 어떻게해야하는지 모르겠습니다. 나는에 갔어요 http://www.sqlite.org/download.html 내 OS의 명령 행 쉘을 다운로드,하지만 난이 프로그램을 실행하고 입력 할 때 adb ...나는 오류를 얻을.
참고 : Android Studio를 사용하고 있으므로 추가로 설치할 필요가 없다고 가정합니다. Android Studio에 필요한 모든 SDK 도구가 있다고 말한 것이 기억납니다.
가장 쉬운 방법 : ADB Shell을 통해 Sqlite3에 연결
Android Studio에서이를 수행하는 방법을 찾지 못했지만 매번 파일을 가져 오는 대신 원격 셸을 사용하여 db에 액세스합니다.
여기에서 모든 정보 찾기 : http://developer.android.com/tools/help/sqlite3.html
1- 명령 프롬프트에서 플랫폼 도구 폴더로 이동하십시오.
2- 명령 adb devices을 입력 하여 장치 목록을 가져옵니다.
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx device
3- 장치에 셸을 연결합니다.
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell
4a- 루팅 된 기기에서이 단계를 건너 뛸 수 있습니다.
run-as <your-package-name>
4b- db 파일이있는 폴더로 이동합니다.
cd data/data/<your-package-name>/databases/
5- sqlite3을 실행하여 db에 연결하십시오.
sqlite3 <your-db-name>.db
6- 원하는 sqlite3 명령 실행 :
Select * from table1 where ...;
참고 : 아래에서 실행할 더 많은 명령을 찾으십시오.
SQLite 치트 시트
SQLite 데이터베이스에서 테이블을 보는 몇 단계가 있습니다.
데이터베이스의 테이블을 나열하십시오.
.tables표가 어떻게 보이는지 나열하십시오.
.schema tablename전체 표를 인쇄합니다.
SELECT * FROM tablename;사용 가능한 모든 SQLite 프롬프트 명령을 나열합니다.
.help
나에게 가장 쉬운 방법은 Android Device Monitor를 사용하여 데이터베이스 파일을 가져오고 SQLite DataBase Browser를 사용하여 Android Studio를 사용하여 Android를 프로그래밍하는 동안 파일을 보는 것입니다.
1) Android Studio에서 Android 에뮬레이터로 데이터베이스 앱을 실행하고 실행합니다. (확인을 위해 데이터베이스 앱에 일부 데이터를 삽입했습니다)
2) Android Device Monitor를 실행합니다. 달리는 방법?; 로 이동하십시오 [your_folder] > sdk >tools. 해당 폴더에서 monitor.bat를 볼 수 있습니다. shift + right click폴더 안에 " Open command window here"를 선택 합니다. 이 작업은 명령 프롬프트를 시작합니다. 유형 monitor및 Android Device Monitor가 시작됩니다.
3) 현재 실행중인 에뮬레이터를 선택합니다. 그런 다음data>data>[your_app_name]>databases
4) 아이콘 (오른쪽 상단 모서리에 있음)을 클릭하고 (아이콘 위로 마우스를 가져 가면 "장치에서 파일 가져 오기"가 표시됨) 원하는 곳에 저장합니다.
5) SQLite 데이터베이스 브라우저를 시작합니다. 방금 저장 한 파일을 해당 브라우저에 끌어다 놓습니다.
6) Browse Data탭으로 이동 하여 보려는 테이블을 선택하십시오.

귀하가 겪고있는 문제는 일반적이며 문서에 잘 설명되어 있지 않습니다. 일반 장치에는 sqlite3 데이터베이스 바이너리가 포함되어 있지 않으므로 오류가 발생합니다. Android Emeulator, OSX, Linux (설치된 경우) 및 Windows (설치된 후)에는 바이너리가 있으므로 머신에서 로컬로 데이터베이스를 열 수 있습니다.
해결 방법은 장치에서 로컬 시스템으로 데이터베이스를 복사하는 것입니다. 이것은 ADB로 수행 할 수 있지만 여러 단계가 필요합니다.
시작하기 전에 몇 가지 정보가 필요합니다.
- SDK의 경로 (OS 환경에 포함되지 않은 경우)
- 귀하의
<package name>예를 들어,com.example.application <local path>예를 들어 데이터베이스를 배치합니다.~/Desktop또는%userprofile%\Desktop
다음으로 아래 예에서 각 명령이 첫 번째 문자에 기록되는 터미널이 입력되지는 않지만 어떤 셸에 있는지 알려주는 터미널을 이해해야합니다.
>= you OS command prompt$= ADB shell command Prompt!= ADB shell as admin command prompt%
Next enter the following commands from Terminal or Command (don't enter first character or text in ())
> adb shell
$ su
! cp /data/data/<package name>/Databases/<database name> /sdcard
! exit
$ exit
> adb pull /sdcard/<database name> <local path>
> sqlite3 <local db path>
% .dump
% .exit (to exit sqldb)
This is a really round about way of copying the database to your local machine and locally reading the database. There are SO and other resources explaining how to install the sqlite3 binary onto your device from an emulator but for one time access this process works.
If you need to access the database interactively I would suggest running your app in an emulator (that already had sqlite3) or installing sqlite onto your devices /xbin path.
What it mentions as you type adb?
step1. >adb shell
step2. >cd data/data
step3. >ls -l|grep "your app package here"
step4. >cd "your app package here"
step5. >sqlite3 xx.db
- Open up a terminal
cd <ANDROID_SDK_PATH>(for me on Windowscd C:\Users\Willi\AppData\Local\Android\sdk)cd platform-toolsadb shell(this works only if only one emulator is running)cd data/datasu(gain super user privileges)cd <PACKAGE_NAME>/databasessqlite3 <DB_NAME>- issue SQL statements (important: terminate them with
;, otherwise the statement is not issued and it breaks to a new line instead.)
Note: Use ls (Linux) or dir (Windows) if you need to list directory contents.
Depending on devices you might not find sqlite3 command in adb shell. In that case you might want to follow this :
adb shell
$ run-as package.name
$ cd ./databases/
$ ls -l #Find the current permissions - r=4, w=2, x=1
$ chmod 666 ./dbname.db
$ exit
$ exit
adb pull /data/data/package.name/databases/dbname.db ~/Desktop/
adb push ~/Desktop/dbname.db /data/data/package.name/databases/dbname.db
adb shell
$ run-as package.name
$ chmod 660 ./databases/dbname.db #Restore original permissions
$ exit
$ exit
for reference go to https://stackoverflow.com/a/17177091/3758972.
There might be cases when you get "remote object not found" after following above procedure. Then change permission of your database folder to 755 in adb shell.
$ chmod 755 databases/
그러나 21 미만의 Android 버전에서만 작동합니다.
Stetho다음을 build.gradle파일 에 추가하여 라는 매우 멋진 도구를 사용할 수 있습니다 .
compile 'com.facebook.stetho:stetho:1.4.1'
Application또는 Activity onCreate()메서드 내에서 초기화했습니다 .
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Stetho.initializeWithDefaults(this);
setContentView(R.layout.activity_main);
}
그런 다음 주소 에서 크롬 의 db 레코드를 볼 수 있습니다 .
chrome://inspect/#devices
자세한 내용은 내 게시물을 읽을 수 있습니다. DB 레코드를 쉽게 보는 방법
참고 URL : https://stackoverflow.com/questions/18370219/how-to-use-adb-in-android-studio-to-view-an-sqlite-db
'program story' 카테고리의 다른 글
| 방문시 앵커 태그의 색상 변경 비활성화 (0) | 2020.10.25 |
|---|---|
| mongo 쿼리의 출력을 csv 파일로 리디렉션 (0) | 2020.10.25 |
| Spinner가 선택한 항목 값을 문자열로 가져 오는 방법은 무엇입니까? (0) | 2020.10.25 |
| PHP 스크립트에서 500 내부 서버 오류 오류를 보내는 방법 (0) | 2020.10.25 |
| jQuery를 사용한 병렬 비동기 Ajax 요청 (0) | 2020.10.25 |