Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

버그 신고 캡처 및 읽기

버그 신고에는 앱에서 버그를 찾아 수정하는 데 도움이 되는 기기 로그, 스택 추적 및 기타 진단 정보가 포함됩니다. 기기의 버그 신고 개발자 옵션 또는 Android 에뮬레이터 메뉴를 사용하거나 개발용 컴퓨터에서 adb bugreport 명령어를 사용하여 기기에서 버그 신고를 캡처할 수 있습니다.

그림 1. 개발자 옵션

버그 신고를 받으려면 버그 신고 옵션에 액세스할 수 있도록 기기에서 개발자 옵션을 사용 설정해야 합니다.

기기에서 버그 신고 캡처

그림 2. 버그 신고가 준비됨

기기에서 직접 버그 신고를 받으려면 다음 단계를 따르세요.

  1. 개발자 옵션을 사용 설정했는지 확인합니다.
  2. 개발자 옵션에서 버그 신고를 탭합니다.
  3. 원하는 버그 신고 유형을 선택하고 신고를 탭합니다.

    잠시 후 버그 신고가 준비되었다는 알림이 표시됩니다(그림 2).

  4. 버그 신고를 공유하려면 알림을 탭합니다.

Android 에뮬레이터에서 버그 신고 캡처

Android 에뮬레이터에서 Extended controls의 File a bug 기능을 사용할 수 있습니다.

  1. 에뮬레이터 패널에서 More 를 클릭합니다.
  2. Extended controls 창에서 왼쪽에 있는 Bug report를 선택합니다.

    스크린샷, AVD 구성 정보, 버그 신고 로그와 같은 버그 신고 세부정보를 볼 수 있는 화면이 열립니다. 또한, 재현 단계와 함께 메시지를 입력하여 보고서로 저장할 수 있습니다.

  3. 버그 신고의 정보 수집이 완료될 때까지 기다린 후 Save Report를 클릭합니다.

adb를 사용하여 버그 신고 캡처

연결된 기기가 하나면 다음과 같이 adb를 사용하여 버그 신고를 받을 수 있습니다.

    $ adb bugreport E:\Reports\MyBugReports
    

버그 신고는 경로를 지정하지 않으면 로컬 디렉터리에 저장됩니다.

여러 기기가 연결된 경우 -s 옵션을 이용하여 반드시 기기를 지정해야 합니다. 다음의 adb 명령어를 실행하여 기기의 일련번호를 받고 버그 신고를 생성하세요.

    $ adb devices
    List of devices attached
    emulator-5554      device
    8XV7N15C31003476 device

    $ adb -s 8XV7N15C31003476 bugreport
    

버그 신고 ZIP 파일 검사

기본적으로 ZIP 파일은 bugreport-BUILD_ID-DATE.zip 형식의 이름을 가지며 여러 개의 파일을 포함할 수 있지만, 가장 중요한 파일은 bugreport-BUILD_ID-DATE.txt입니다. 이 파일은 버그 신고이며 시스템 서비스(dumpsys), 오류 로그(dumpstate) 및 시스템 메시지 로그(logcat)에 관한 진단 출력을 포함합니다. 시스템 메시지에는 기기에 오류가 발생할 당시의 스택 추적과 Log 클래스를 가진 모든 앱에서 작성된 메시지가 포함됩니다.

ZIP 파일은 Android 출시 문자가 포함된 version.txt 메타데이터 파일을 포함하고 systrace를 사용 중인 경우 ZIP 파일은 systrace.txt 파일도 포함합니다. Systrace 도구는 애플리케이션 프로세스와 다른 Android 시스템 프로세스의 실행 시간을 캡처하고 표시하여 애플리케이션의 성능을 분석하는 데 도움이 됩니다.

dumpstate 도구는 파일을 참조할 수 있도록 기기의 파일 시스템에서 FS 폴더 아래 ZIP 파일로 파일을 복사합니다. 예를 들어, 기기의 /dirA/dirB/fileC 파일은 ZIP 파일에 FS/dirA/dirB/fileC 항목을 생성할 것입니다.

그림 3. 버그 신고 파일 구조

자세한 정보는 버그 신고 읽기를 참조하세요.

사용자로부터 보고서 받기

위에서 설명한 바와 같이 버그 신고를 캡처하면 개발자가 앱을 직접 사용하는 경우에는 유용하지만, 최종 사용자가 이러한 유형의 버그 신고를 개발자와 공유하기는 쉽지 않습니다. 실제 사용자로부터 스택 추적을 포함한 비정상 종료 보고서를 받으려면 Google Play와 Firebase의 오류 보고 기능을 활용해야 합니다.

Google Play Console

Google Play Console에서 보고서를 받아 Google Play에서 앱을 설치한 사용자로부터 발생한 비정상 종료와 애플리케이션 응답 없음(ANR) 오류에 관한 데이터를 조회할 수 있습니다. 지난 6개월 동안의 데이터를 확인할 수 있습니다.

자세한 정보는 Play Console 도움말에서 비정상 종료 및 애플리케이션 응답 없음(ANR) 오류 보기를 참조하세요.

Firebase 오류 보고

Firebase 오류 보고는 앱에 상세한 오류 보고서를 만듭니다. 오류는 비슷한 스택 추적을 기반으로 그룹화되며 사용자에게 미치는 영향의 심각도에 따라 분류됩니다. 자동 보고서 외에도 커스텀 이벤트를 기록하여 비정상 종료가 발생하는 단계를 캡처할 수 있습니다.

Firebase 종속성을 build.gradle 파일에 추가하기만 하면 사용자로부터 오류 보고를 받을 수 있습니다. 자세한 정보는 Firebase 오류 보고를 참조하세요.