[Flutter] 앱에서 다운받은 파일 adb로 복사하기

Elen li·2021년 11월 24일
0

adb(Android Debug Bridge)는 기기와 통신할 수 있는 다목적 명령줄 도구입니다.
adb 명령어는 앱의 설치 및 디버깅과 같은 다양한 기기 작업에 도움이 되며, 기기에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix 셸에 관한 액세스를 제공합니다.
https://developer.android.com/studio/command-line/adb?hl=ko

문제의 발생

앱이 설치되면 하나의 패키지명을 가진 폴더가 생성되고 앱에서 다운받은 파일은 그 폴더 어딘가로 저장되게 됩니다. 개발하다보면 이 파일이 완전체로 다운받아진건지 확인을 해보고 싶을 때가 있습니다. 그런데 핸드폰의 '내 파일'과 같은 앱에서는 접근이 되지 않습니다.
그럴 때 adb를 사용하면 파일이 있는지 확인하고, 공개 폴더에 복사하는 등의 작업이 가능해집니다.

1. 컴퓨터에 연결된 기기의 이름 가져오기 ($adb devices)

$ adb devices
  • 출력값 (R3CM903ABZN = 연결된 디바이스명)
    List of devices attached
    R3CM903ABZN device

2. 디바이스 내부로 adb 접속 ($adb -s [디바이스명] shell)

$ adb -s R3CM903ABZN shell

3. 앱 패키지로 이동 ($run-as [패키지명])

$ run-as com.adcd.abdb

4. 목록 확인

$ cd app_flutter
$ ls -al

여기까지 오시면 저장한 파일명이 보이실겁니다.
사실 저는 adb로 접속하기 이전에 IDE에서 로그로 파일이 저장될 위치를 찍어봤기 때문에 com.abcd.abdb/app_flutter 여기로 바로 들어왔습니다. 제 블로그를 보시는 분들도 정말로 들어왔는지 확인하고 싶으시다면, 우선 로그로 파일 경로를 찍고 들어오시는 것을 추천합니다.


그런데 여기까지 와도 파일이 있다는 것만 확인할 수 있을 뿐, 제대로 된 내용이 들어와있는지 열어서 확인하기 어렵습니다. 그래서 디바이스 공개 폴더 안에 해당 파일을 복사하기로 했습니다.

5. 앱 폴더에서 모바일 공개 폴더 (Download)로 복사하기

cat foo.pdf  > /sdcard/Download/manual.pdf

이렇게 복사가 다 되었습니다.
모바일에서 [내 파일] -[다운로드] 에 들어가셔서 해당 파일을 눌러 내용 확인이 가능해졌습니다 :)

참고로 cat은 리눅스 명령어이며 'cat [파일명]'은 파일의 내용을 출력합니다.
cat 명령어와 관련된 자료는 https://m.blog.naver.com/seunggon25/20197325534에서 확인해보셔도 좋을 것 같습니다.

profile
Android, Flutter 앱 개발자입니다.

1개의 댓글

comment-user-thumbnail
2022년 10월 12일

좋은 내용감사합니다 도움이 되었습니다 혹시 괜찮다면, 이 포스팅(링크)를 제 블로그에 넣어도 괜찮을까요?

답글 달기