애플리케이션에서 사용하는 SQLite DB의 table 구조나 data를 확인하는 3가지 방법을 정리해봅니다.
1. sqlite 프롬프트 이용
명령어 날리는게 귀찮지만 sqlite 활용의 기본이니 알아두면 좋습니다. 이 방법은 직접 디바이스 내부 DB에 접속하여 작업 가능하므로 DB 파일을 로컬로 복사할 필요가 없습니다.
자세한 이용 방법은 커니님의 글 참조 : http://androidhuman.tistory.com/entry/테이터베이스-그-속이-궁금하다
2. SQLite 클라이언트 툴 이용
SQLite Database Browser 같은 SQLite DB 전용 클라이언트 소프트웨어를 이용하여 DB 내용을 볼 수 있습니다.
(1) 클라이언트 SW 설치
- SQLite Database Browser : UI가 수수함. 주로 데이터 조회 기능 제공.
- SQLite Developer Lite : UI가 세련됨. 테이블/인덱스 외에 뷰/트리거도 조회. 테이블 관리 등 여러가지 기능 제공.
(2) DB 파일 꺼내기
디바이스 or 에뮬레이터의 내부 DB 파일(*.db)을 로컬로 꺼냅니다. 예를들어 Contacts Provider가 사용하는 DB파일을 C:\로 복사해보죠.
$ adb pull /data/data/com.android.providers.contacts/databases/contacts2.db C:/contacts2.db
(3) 꺼낸 DB 파일을 클라이언트 툴로 오픈
SQLite 클라이언트 툴로 오픈하여 DB 구조와 데이터를 확인합니다.
* 타겟 시스템의 바뀐 DB 내용을 확인하고자 한다면, DB 파일 꺼내는 작업을 반복해서 해주어야 하므로 DDMS의 File Explorer보다는 파일 꺼내는 명령을 배치파일로 만들어두고 실행하는 것이 편리합니다. 보통은 DB 파일을 꺼내고 툴로 오픈하는 명령을 하나의 배치파일로 만들어두고 활용합니다.
3. 이클립스 DB 클라이언트 플러그인 이용
SQLite 클라이언트 툴을 설치하는게 귀찮거나 이클립스 외에 다른 프로그램을 띄우는게 싫다면, 이클립스 안에서 SQLite DB를 볼 수 있게 세팅해주면 되겠습니다. 개인적으로 이 방법을 선호합니다.(그러나 이런 이클립스 플러그인들은 JDBC를 이용하기 때문에 전용 SW보다는 DB 관리 기능이 부족합니다.)
(1) DB 클라이언트 플러그인 설치
SQL Explorer나 Quantum DB 같은 DB 클라이언트 플러그인을 설치합니다.
(2) JDBC 연결 세팅
JDBC 드라이버 : http://www.zentus.com/sqlitejdbc/ 에서 구할 수 있습니다.
JDBC URL 형식 : jdbc:sqlite:/[로컬 DB파일 경로] (예를들어, jdbc:sqlite:/C:/contacts.db )
(3) DB 플러그인에서 DB 연결하여 내용조회
DB 파일을 JDBC URL에 설정된 고정된 경로로 꺼내고, DB 플러그인에서 DB에 연결하여 내용을 확인합니다.
* 2번 방법과 마찬가지로 내부 DB 변경시마다 로컬로 DB파일 꺼내는 작업을 반복해야 하므로, 파일 꺼내는 배치파일 or 명령을 이클립스 외부프로그램(External Tools)으로 등록시켜서 실행하면 편리합니다.
참고 : SQLite 데이터베이스의 DDL 쿼리 덤프 뜨기
sqlite에서 제공하는 .dump 명령어를 사용합니다. (table/index/trigger CREATE 문과 data INSERT 문이 출력됨)
$ sqlite3 C:/contacts.db .dump > C:/contacts.ddl
'Android' 카테고리의 다른 글
[안드로이드] 이클립스에서 네이티브 애플리케이션을 디버그 모드로 서명하기 (17) | 2010.04.08 |
---|---|
[안드로이드] Native 애플리케이션과 User 애플리케이션 (0) | 2010.03.30 |
[안드로이드] 시스템 분석을 위한 쉘 명령어 (10) | 2010.03.19 |
[안드로이드] 프로세스별 메모리 사용량 분석 (5) | 2010.03.19 |
[안드로이드] Doxygen으로 네이티브 소스에 대한 API 문서 생성하기 (0) | 2010.03.18 |