따뜻한 대한민국 겨울만들기

안드로이드에서 SQLite 사용시 데이터베이스 파일(/data/data/databases/) 접근은 

시뮬레이터에서 동작시에만 가능하다.

디바이스에서 동작시 접근은 권한 문제로 DDMS에서 접근이 불가하다.

하지만, 디바이스에서 동작시 아래와 같은 방법으로 데이터베이스 파일을 가져올 수 있다.


1. AndroidManifest.xml에서  debuggable 옵션을 true 로 설정한다.

<application
 ...
        android:debuggable="true"
 ...


2. 아래와 같이 실행시키면, /data/data/ 이하의 폴더들을 확인할 수 있다.

adb shell "run-as com.your.package ls -l"


3. 아래는 데이터베이스 파일을 접근 권한이 있는 sdcard 폴더에 복사하는 명령이다.

adb shell "run-as com.your.package cat relative/path > /sdcard/some_name"
adb pull /sdcard/some_name


참고로, 저는 이렇게 하였습니다.

adb shell "run-as net.aaa.android.test cat databases/db 파일명 > /storage/sdcard0/Android/data/db 파일명"


참고 : ICS 이하 버전에서는 아래와 같이 run-as 명령이 먹히지 않는다.

run-as: Package 'com.your.package' is unknown



Write your message and submit
« PREV : 1 : 2 : 3 : 4 : 5 : 6 : ··· : 61 : NEXT »