내 SQLite db를보아야하는데 어떻게해야하는지 모르겠습니다. 나는에 갔어요 http://www.sqlite.org/download.html 내 OS의 명령 행 쉘을 다운로드,하지만 난이 프로그램을 실행하고 입력 할 때 adb ...
나는 오류를 얻을.
참고 : Android Studio를 사용하고 있으므로 추가로 설치할 필요가 없다고 가정합니다. Android Studio에 필요한 모든 SDK 도구가 있다고 말한 것이 기억납니다.
내 SQLite db를보아야하는데 어떻게해야하는지 모르겠습니다. 나는에 갔어요 http://www.sqlite.org/download.html 내 OS의 명령 행 쉘을 다운로드,하지만 난이 프로그램을 실행하고 입력 할 때 adb ...
나는 오류를 얻을.
참고 : Android Studio를 사용하고 있으므로 추가로 설치할 필요가 없다고 가정합니다. Android Studio에 필요한 모든 SDK 도구가 있다고 말한 것이 기억납니다.
답변:
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 데이터베이스에서 테이블을 보는 몇 단계가 있습니다.
데이터베이스의 테이블을 나열하십시오.
.tables
표가 어떻게 보이는지 나열하십시오.
.schema tablename
전체 표를 인쇄합니다.
SELECT * FROM tablename;
사용 가능한 모든 SQLite 프롬프트 명령을 나열합니다.
.help
/data/data
디렉토리에 들어가기 때문에 예
cp /data/data/<your-package-name>/databases/<your-db-name>.db /sdcard
. 그런 다음 Explorer와 같은 파일 관리자를 사용하여 파일을 이메일로 보냅니다. :)
나에게 가장 쉬운 방법은 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로 수행 할 수 있지만 여러 단계가 필요합니다.
시작하기 전에 몇 가지 정보가 필요합니다.
<package name>
예를 들어,com.example.application
<local path>
예를 들어 데이터베이스를 배치합니다. ~/Desktop
또는%userprofile%\Desktop
다음으로 아래 예에서 각 명령이 첫 번째 문자에 기록되는 터미널을 이해해야합니다. 입력되지는 않지만 어떤 쉘에 있는지 알려줍니다.
>
= OS 명령 프롬프트$
= ADB 쉘 명령 프롬프트!
= 관리자 명령 프롬프트로 ADB 쉘%
그런 다음 터미널 또는 명령에서 다음 명령을 입력하십시오 (에 첫 문자 나 텍스트를 입력하지 마십시오 ()
).
> 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)
이것은 데이터베이스를 로컬 머신에 복사하고 로컬에서 데이터베이스를 읽는 방법에 대한 진정한 라운드입니다. 에뮬레이터에서 기기에 sqlite3 바이너리를 설치하는 방법을 설명하는 SO 및 기타 리소스가 있지만 한 번만 액세스하면이 프로세스가 작동합니다.
대화식으로 데이터베이스에 액세스해야하는 경우 에뮬레이터 (이미 sqlite3가 있음)에서 앱을 실행하거나 sqlite를 장치 / xbin 경로에 설치 하는 것이 좋습니다 .
cd <ANDROID_SDK_PATH>
(Windows의 경우 cd C:\Users\Willi\AppData\Local\Android\sdk
)cd platform-tools
adb shell
(하나의 에뮬레이터 만 실행중인 경우에만 작동합니다.)cd data/data
su
(슈퍼 유저 권한 획득)cd <PACKAGE_NAME>/databases
sqlite3 <DB_NAME>
;
하십시오. 그렇지 않으면 명령문이 발행되지 않고 대신 새 행으로 구분됩니다.)참고 : 디렉토리 내용을 나열해야하는 경우 ls
(Linux) 또는 dir
(Windows)를 사용하십시오 .
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
adb
... SQLite3 셸에 입력하면 나에게 제공 ...>
되고 명령이 계속 될 것으로 예상됩니다. 기본적으로 ;
. 세미콜론을 error: near "adb": syntax error
입력 adb shell
하면 명령 프롬프트에 입력 하면 adb가 인식 된 명령이 아니라는 메시지가 나타납니다. 경로 파일에 adb를 추가해야합니까?
/system/bin/sh: sqlite3: not found
... 그리고 ... 이미 경로 변수로 sqlite3를하고 ADB를 추가 한
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 레코드를 쉽게 보는 방법
기기에 따라 adb 셸에서 sqlite3 명령을 찾지 못할 수 있습니다. 이 경우 다음을 따르십시오.
adb 쉘
$ run-as package.name
$ cd ./databases/
$ ls -l # 현재 권한 찾기-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 # 원래 권한 복원
$ exit
$ exit
참고로 https://stackoverflow.com/a/17177091/3758972 로 이동 하십시오 .
위의 절차를 수행 한 후 "원격 개체를 찾을 수 없음"이 표시되는 경우가있을 수 있습니다. 그런 다음 adb 쉘에서 데이터베이스 폴더의 권한을 755로 변경하십시오.
$ chmod 755 데이터베이스 /
그러나 21 미만의 Android 버전에서만 작동합니다.