안드로이드 디바이스에서 DB 파일 접근 방법 (Access sqlite database on android device)
Posted 2013. 6. 11. 10:46안드로이드에서 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
|
- Filed under : 개발/Android