-
안드로이드 파일 자동으로 가져오기(realm DB파일)카테고리 없음 2020. 2. 18. 11:55
안드로이드 개발 중
realm(DB), SQLite 파일을 가져와서 DB속 내용확인 필요
매번 파일을 android studio device file exploer로 복사, 확인하기 번거로움
한번에 파일을 내컴퓨터로 가져올 방법을 찾음
방법
- db파일을 접근가능한 안드로이드 속 파일폴더로 복사
(복사하지 않으면 기존에 db파일 있는 곳 접근권한이 없고, 권한 얻기가 까다롭다) - 파일을 복사해오는 명령어를 만든다.
- 명령어를 실행가능한 파일로 만든다.
1. DB파일을 접근 가능한 안드로이드 파일 폴더로 복사한다
//class HomeFragment : Fragment() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) realm = Realm.getDefaultInstance() //실제 배포에서는 빼주도록 하자 try { val file = File(activity?.getExternalFilesDir(null),"/default.realm") //복사할 경로, 파일 //??.realm 이 DB파일 if (file.exists()) { file.delete()//기존에 복사한 파일이 있으면 지움 } realm.writeCopyTo(file)//DB파일을 경로로 복사 Log.d("test","Success export realm file!!"+"filePath:"+file.toString())//경로확인 } catch (e: Exception) { realm.close() e.printStackTrace() } }
비공개 파일: Context.getExternalFilesDir()를 사용하여 액세스하는 앱별 디렉터리에 저장된 파일입니다. 비공개 파일은 사용자가 앱을 제거할 때 정리됩니다. 이 파일은 외부 저장소에 있기 때문에 사용자가 그리고 다른 앱에서 기술적으로 액세스할 수는 있지만 앱 외부의 사용자에게 가치가 있는 것은 아닙니다. 다른 앱과 공유하지 않으려는 파일에 이 디렉터리를 사용하세요.
2. 파일을 복사해오는 명령어
콘솔에서 파일이 정상적으로 복사 되는지 확인하고 다음으로 이동.
adb pull <android file> <local path> : pull 명령어는 안드로이드 폰에 존재하는 파일을 로컬 pc로 복사하는 명령어
adb pull /storage/emulated/0/Android/data/com.example.myapplicationemptyactivity.dev/files/default.realm C:\Users\당신!사용자이름\Documents
안드로이드 파일 경로는 코드에서 logcat에 찍히도록 했으니 확인한다.
윈도우 콘솔창에서 adb만을 입력했을 때 안될경우.
안드로이드 SDK폴더 플렛폼 툴속에 ADB파일이 있는데 이것을 시스템 환경변수에 등록시켜주면 된다. 찾아서 등록만 하면된다.
혹시나 모르신다면 아래로 연결
https://serendipper16.tistory.com/6
3. 파일을 복사해오는 명령어를 BAT파일(실행파일)로 작성
메모장을 켜고 명령어를 적은후 .BAT파일로 저장후 실행하면 끝.
@echo off adb pull /storage/emulated/0/Android/data/com.example.myapplicationemptyactivity.dev/files/default.realm C:\Users\당신의이름\Documents
4. BAT파일을 실행하면 DB파일이 내 컴퓨터로 바로 가져와진다.
- db파일을 접근가능한 안드로이드 속 파일폴더로 복사