티스토리 뷰
< SQLite db파일에 접근하기 > SQLite로 생성한 local db 파일을 보기 위해선 DDMS를 실행한 후 data/data/[해당 package 명]/database/.db로 찾아들어가라고들 말하죠. 하지만 문제는! 안드로이드 폰을 USB로 연결해서 테스트해보면 'data폴더가 텅 비어있는 것'을 발견할 수 있습니다 !! 하지만 그건 사실 비어있는게 아니라 해당 디렉토리에 접근하지 못하는겁니다. 안드로이드 디바이스는 자체적으로 'data'디렉토리에 접근 할 수 없도록 막혀 있는데요, 해당 디렉토리에 접근하기 위해서는 '접근 권한'이 필요합니다. 지금부터 차근차근 따라오시면 금방 해결하실 수 있어요! (해당 문제는 adb로 테스트하면 발생하지 않습니다만, 앞으로 db파일을 까보는 일이 잦아질테니 이 작업을 한번 해주시면 좋아요! ) 제가 앞으로 설명할 내용은 '테스트용 안드로이드 폰'을 가지신 분에게 권장합니다. 본인이 사용중인 안드로이드 폰은 해당 작업을 하기 적절치 못합니다. |
1. Rooting : 개발을 목적으로 test용 안드로이드 디바이스를 가지고 계시다면, 해당 기기를 Rooting하시는게 여러모로 도움이 될 때가 많습니다. Rooting이 뭐냐면, 한마디로 '슈퍼 권한'을 가지게 되는것을 뜻하는데요, 우리가 data디렉토리에 접근하지 못했던 근본적인 이유도, 접근권한이 없었기 때문입니다. (adb로 실행할 경우는 자동으로 모든 권한을 다 가지게 되요) Rooting은 여러가지 툴이 있지만, 저는 'Kingo for windows (https://www.kingoapp.com/)'를 사용해서 루팅을 진행했습니다. Q) rooting이 된건지 어떻게 알 수 있죠? : 다음 코드를 돌려보면 알 수 있습니다. 아래 "su"라는 권한 명령은 rooting된 디바이스에서만 실행할 수 있거든요. try
{
//관리자 권한 요청
Runtime.getRuntime().exec("su");
//루트
Log.d("test", "루팅 ok");
}
catch ( Exception ex)
{
//루트 아님
Log.d("test", "루팅 no");
}
|
2. Root File Manager : 다음으로 안드로이드 안에서 디렉토리에 접근할 수 있는 툴을 받아야 하는데요, 역시 여러가지 있겠습니다만, 저는 무료인 'Root File Manager'라는 앱을 받아 진행해 보겠습니다. 이 앱은 (당연하게도) rooting된 디바이스에서 유용한 앱이구요, 이 앱을 통해 기기의 모든 디렉토리에 마음대로 접근할 수 있습니다. 우리는 이 앱을 통해 '외부'에서도 db파일에 접근할 수 있도록 할겁니다. 해당 앱을 통해 들어가보면 우리가 그토록 원하던 'data'디렉토리에 접근할 수 있다는 것을 알 수 있습니다! (감격 ㅠ.ㅠ) 하지만 우리가 원하는건 외부에서 접근가능하게 하는 것이므로, 권한을 수정해줘야합니다. 권한을 수정하고 싶은 디렉토리를 길게 누르고 'Permissions'로 들어가면 위와같이 뜨는데요, 저기서 Others에 대한 권한도 체크를 해준 후 Ok를 클릭! 다만 조금 귀찮은 건, data/data/[package 명]/database/.db 경로에 해당되는 모든 파일의 접근 권한을 수정해 줘야한다는 점입니다. (귀찮..) 그리고 하나하나 접근 권한을 바꿔주면 다음과 같이 USB로 디바이스를 연결한 경우에도 data 디렉토리에도 접근할 수 있게 됩니다! |
3. db파일 상세보기 : db파일에 접근하는 것에서 끝낸다면 큰 의미가 없습니다. 그 속에 어떤 data가 저장되어 있는지 눈으로 확인할 수 있어야겠죠? 이 단계에서도 역시 여러가지 툴이 있지만, 저는 'SQLPro for SQLite'라는 프로그램을 사용해보겠습니다. (Mac용 유료앱이라 해당 라이센스가 있어야만 사용하실 수 있습니다. Windows 운영체제를 사용하시는 분들은 더 많은 툴들이 있습니다.) 이제 꺼낸 db파일을 해당 프로그램으로 돌려보면 다음과 같이 data를 '저장, 삭제, 조회, 수정' 할 수 있습니다. 이런 툴을 사용하면, 미리 만들어놓은 db파일, 혹은 기관 등에서 제공되는 db파일을 DDMS를 통해 넣어서 실행해 볼수도 있겠죠? 이상이었습니다! |
'개발자 배배 > Android' 카테고리의 다른 글
[Beacon] 1. 모니터링 시스템 전체 기획 (0) | 2017.02.04 |
---|---|
[Android] Retrofit의 동기/비동기 시행착오 (2) | 2017.02.01 |
[Android] 안드로이드 카카오톡 연동 - (3). 로그인 연동 (7) | 2016.06.02 |
[Android] 안드로이드 카카오톡 연동 - (2). Gradle 설정 (0) | 2016.06.02 |
[Android] 안드로이드 카카오톡 연동 - (1). App설정 (1) | 2016.06.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- call back
- Beacon
- 카카오톡 연동
- 수업교재
- server ip
- stopService
- kakao oven
- layout_weight
- tabLayout
- ranging
- 카카오톡
- monitoring
- Android
- kakaotalk
- 연동
- fragment 겹침
- 행복의 상대성
- RECO beacon
- KAKAO
- call back 뺏아오기
- SQLPro
- startService
- 비콘
- wegith
- 카톡
- eddystone
- 책 집필
- Retrofit
- nodejs
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함