디버깅을 위해 App 내부에서 생성한 SQLite DB 테이블을 확인하고 싶을 때가 있습니다. 다음과 같은 방법으로 확인할 수 있습니다.
- Android Studio의 Device File Explorer에서 내 앱에 저장된 db파일을 PC에 저장하고 Browser 프로그램으로 확인
- Android Debug Database 라이브러리를 이용하여 확인
Device File Explorer를 이용하여 테이블 확인
Android Studio에서 [View] -> [Tool Windows] -> [Device File Explorer]
를 선택하면 Device File Explorer가 실행됩니다.
Device File Explorer에서 /data/data/[package name]/databases/
디렉토리에 들어가면 내 앱이 생성한 db 파일을 찾을 수 있습니다.
다음과 같이 "Save As..." 버튼을 눌러 PC에 저장합니다.
'/data/data/[package name]/' 경로는 앱의 데이터가 저장되는 위치이며, databases 폴더 아래에 db 파일이 저장됩니다.
Database 파일 디버깅
저장한 db파일을 열어보려면 먼저 Database Browser 툴을 설치해야 합니다.
sqlitebrowser.org에서 SQLite Browser 툴을 OS 별로 다운받을 수 있습니다. (만약 SQLite 외의 다른 데이터베이스를 사용하는 경우, 그 파일을 열 수 있는 브라우저를 설치하시면 됩니다.)
Linux 사용자의 경우, 다음 명령어로 sqlitebrowser 설치하고 실행할 수 있습니다.
$ sudo apt install sqlitebrowser
$ sqlitebrowser
SQLite Browser를 실행하여 위에서 저장한 db 파일을 열어보면, 다음과 같이 어떤 아이템들이 저장되어있는지 확인할 수 있습니다.
Android Debug Database 라이브러리를 이용하여 테이블 확인
이 라이브러리는 Database와 SharedPreference를 디버깅하는 라이브러리입니다. 루팅할 필요가 없으며 디바이스와 PC가 동일한 네트워크에 연결되어있으면 됩니다. 앱을 실행시키면 라이브러리가 Webpage를 생성하여 PC에서 쉽게 Database를 디버깅할 수 있도록 합니다.
GitHub - Android Debug Database에서 라이브러리에 대한 자세한 내용을 확인할 수 있습니다.
사용 방법
App의 build.gradle
에 다음과 같이 의존성을 추가합니다.
dependencies {
...
debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
}
그리고 다음과 같은 코드가 실행되도록, Applicaiton이나 Activity에 넣어주면 됩니다. 이 코드는 Webpage의 주소를 출력해줍니다. 따라서 코드가 실행될 수 있는 위치에만 넣어주면 됩니다.
DebugDB.getAddressLog()
이제 앱을 실행해보면 DebugDB.getAddressLog()
가 다음과 같은 로그를 출력시킵니다. 로그의 주소를 복사하여 웹페이지에서 실행하시면 됩니다.
08-30 16:53:08.947 10204 10204 D DebugDB : Open http://192.168.0.11:8080 in your browser
Browser에서 http://192.168.0.11:8080
에 접속하면 다음과 같은 페이지가 보입니다. 여기서 DB 테이블에 어떤 아이템들이 있는지 확인할 수 있습니다.
참고
Related Posts
- Android 14 - 사진/동영상 파일, 일부 접근 권한 소개
- Android - adb push, pull로 파일 복사, 다운로드
- Android 14 - 암시적 인텐트 변경사항 및 문제 해결
- Jetpack Compose - Row와 Column
- Android 13, AOSP 오픈소스 다운로드 및 빌드
- Android 13 - 세분화된 미디어 파일 권한
- Android 13에서 Notification 권한 요청, 알림 띄우기
- Android 13에서 'Access blocked: ComponentInfo' 에러 해결
- 에러 해결: android gradle plugin requires java 11 to run. you are currently using java 1.8.
- 안드로이드 - 코루틴과 Retrofit으로 비동기 통신 예제
- 안드로이드 - 코루틴으로 URL 이미지 불러오기
- Android - 진동, Vibrator, VibrationEffect 예제
- Some problems were found with the configuration of task 에러 수정
- Query method parameters should either be a type that can be converted into a database column or a List
- 우분투에서 Android 12 오픈소스 다운로드 및 빌드
- Android - ViewModel을 생성하는 방법
- Android - Transformations.map(), switchMap() 차이점
- Android - Transformations.distinctUntilChanged() 소개
- Android - TabLayout 구현 방법 (+ ViewPager2)
- Android - 휴대폰 전화번호 가져오는 방법
- Android 12 - Splash Screens 알아보기
- Android 12 - Incremental Install (Play as you Download) 소개
- Android - adb 명령어로 bugreport 로그 파일 추출
- Android - adb 명령어로 App 데이터 삭제
- Android - adb 명령어로 앱 비활성화, 활성화
- Android - adb 명령어로 특정 패키지의 PID 찾기
- Android - adb 명령어로 퍼미션 Grant 또는 Revoke
- Android - adb 명령어로 apk 설치, 삭제
- Android - adb 명령어로 특정 패키지의 프로세스 종료
- Android - adb 명령어로 screen capture 저장
- Android - adb 명령어로 System 앱 삭제, 설치
- Android - adb 명령어로 settings value 확인, 변경
- Android 12 - IntentFilter의 exported 명시적 선언
- Android - adb 명령어로 공장초기화(Factory reset)
- Android - adb logcat 명령어로 로그 출력