티스토리 뷰
Realm
은 SQLite
,CoreData
을 대체할 수 있는 모바일 데이터 베이스 입니다.Realm
을 사용하다보면 GUI로 현재 저장된 Realm Data를 확인하고 싶을 때가 있습니다. 이러한 불편함을 알았는지 이미 Realm
은 Realm Bowser
을 제공하여 사용자가 보다 편리하게 Realm Data을 확인할 수 있도록 도와주고 있습니다. 그렇다면 어떻게 Realm Bowser
을 통하여 Realm DataBase을 확인 할 수 있을지 확인해 보겠습니다.
Realm 설치하기
Realm Data를 확인하기 위해서는 .realm
확장자 포멧인 파일을 열어 확인하여야 합니다..realm
확장자 파일은 Realm Browser
에서만 열수 있으며 Macbook 사용자는 AppStore
에서Realm Browser
을 검색하여 설치할 수 있습니다.
Realm Studio 설치 (Windows, iOS)
Windows 환경에서는 Realm Studio를 이용해서 .realm
를 확인 할 수 있습니다.
Realm Browser
보다 많은 기능(Query 검색, Admin 기능, Realm 서버 동기화)을 제공합니다.
Emulator Realm 데이터 확인하기
Android Studio에서 Emulator에 저장된 Realm
데이터 가져오는 법을 공유하겠습니다.
.realm 파일을 가져오기 위해서는 Emulator가 실행되어 있어야 한다.
첫번째, 저장된 Realm Database 주소 찾기
Realm Dababase(이제부터 DB로 통일하겠습니다.) 을 확인하기 위해서는 우선 저장된 Realm DB을 추출해야 합니다. 추출하기 위해서는 다음과 같이 realm.path
을 활용하여 저장된 Realm 주소를 확인합니다.
저장된 Realm 주소 확인 방법
Log.e(Constants.LOG_TEST, "realm address : " + realm.path)
결과 Log
06-23 23:01:54.413 5969-5969/? E/LOG_LOGIN: realm address : /data/data/com.kcs.sampletodolist/files/UserDTO.realm
두번째, 터미널에서 adb 명령을 이용해서 .realm 가져오기
adb를 보다 편하게 사용하기 위해서는 adb을 환경변수에 설정하면 편하게 사용할 수 있습니다.
.realm 파일을 가져오기 위해 다음 명령어를 입력합니다.
adb pull /data/data/com.kcs.sampletodolist/files/UserDTO.realm
error: failed to stat remote object
'/data/data/com.kcs.sampletodolist/files/UserDTO.realm ': Permission denied
위와 같이 에러가 발생합니다. Permission denined
에러는 사용자가 수행하려는 작업에 대한 권한이 없을 때 발생하는 에러입니다. 그렇다면 어떻게 권한을 얻을 수 있을까요? 다음 단계를 살펴봅니다.
세번째, adb root로 변경하여 .realm 파일 가져오기.
이전 단계에서 adb pull 시도 시 Permission denied 발생하였습니다. adb의 권한 얻을 수 있는 방법은 adb root
로 전환하여 해당 파일을 가져오면 됩니다.
터미널에 다음 명령어를 입력하여 root로 전환합니다.
adb root
restarting adbd as root
위와 같이 나오면 root 계정으로 전환이 완료된 것입니다.
이 상태에서 두번째 항목의 명령어를 입력하면 .realm 파일을 받고 Realm Browser로 실행하면 데이터를 확인할 수 있다.
adb pull /data/data/com.kcs.sampletodolist/files/UserDTO.realm
adb root 명령어 에러 발생 하는 경우
adbd cannot run as root in production builds
adb root 명령어 입력했을 때 다음과 같이 error 발생할 수 있습니다. 저 또한 그 피해자(?) 중 한명으로 원인 찾는데 많은 시간을 보냈습니다. 왜 이런 에러가 발생하는지 원인과 해결 방법에 대해서 공유하겠습니다.
■ 에러 원인
에러가 발생하는 원인은 Emulator
에서 Target
을 Google Play
로 설정한 경우 다음과 같이 adb root로 변경이 불가능하다. 이 말이 무슨말일까요? Emulator
에서 새로운 Emulator
을 생성하게 되면 Target
을 설정하게 됩니다.
Google Play
Google APIs
위 두개의 형태로 구성하는데 사용자가 Google Play
로 Emulator
로 생성하여서 'adbd cannot run as root in production builds' 같은 Error Log을 호출하였습니다.
■ 해결 방법
해결방법은 간단합니다. Emulator
을 다시 생성 시 Target을 Google Play
가 아닌 Google APIs
로 만들면 가능합니다.
□ 디바이스 선택 화면
□ 시스템 이미지 선택 화면 Target
이 Google APIs
인 것으로 선택할 것
□ 최종 디바이스 설정
정리
간단하게 Emulator
에서 생성된 Realm Database을 Realm Bowser에서 확인하는 법을 공유하였습니다. Emulator 생성 시 Target만 주의하셔서 위의 방법으로 테스트 하신다면 문제 없이 Realm Database을 Realm Bowser 에서 확인 할 수 있습니다.
'프로그래밍 > Android' 카테고리의 다른 글
Android O 대응 다른 앱 및 시스템 창에 모달창 띄울 시 주의 사항 (경고 창) (0) | 2018.06.30 |
---|---|
Android Google for Mobile 2018 IO RECAP for Android P (Android P 새로운 기능 소개) (0) | 2018.06.29 |
[Kotlin] TodoList 만들기 [2/2] (0) | 2018.06.19 |
Mac에서 Android 디바이스 미러닝 하기 - Vysor (0) | 2018.06.16 |
[Kotlin] Sample TodoList 만들기 [1/2] (0) | 2018.06.14 |
- issue
- flutter
- Android
- missionchina
- DI
- 안드로이드
- 코틀린
- 점수판
- view
- 고시문헬퍼
- Kotlin
- 스코어헬퍼
- RXjava
- missioon
- 고시문
- swift
- 탁구
- Android Studio
- push
- MCC
- 패턴
- 디자인패턴
- IT
- 알고리즘
- java
- 임용고시
- 선교
- IOS
- 미션차이나센터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |