ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 안드로이드 파일 자동으로 가져오기(realm DB파일)
    카테고리 없음 2020. 2. 18. 11:55

    안드로이드 개발 중

    realm(DB), SQLite 파일을 가져와서 DB속 내용확인 필요

    매번 파일을 android studio device file exploer로 복사, 확인하기 번거로움

     

    한번에 파일을 내컴퓨터로 가져올 방법을 찾음

     

    방법

    1. db파일을 접근가능한 안드로이드 속 파일폴더로 복사
      (복사하지 않으면 기존에 db파일 있는 곳 접근권한이 없고, 권한 얻기가 까다롭다)
    2. 파일을 복사해오는 명령어를 만든다.
    3. 명령어를 실행가능한 파일로 만든다.

     

     

    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
    
    

    realmAutoCopy.BAT
    0.00MB

     

    4. BAT파일을 실행하면 DB파일이 내 컴퓨터로 바로 가져와진다.

    댓글

Designed by Tistory.