온디바이스 개발자 옵션 구성

Android의 설정 앱에는 개발자 옵션이라는 화면이 있습니다. 이 화면에서 앱 성능 프로파일링과 디버깅을 도와주는 시스템 동작을 구성할 수 있습니다. 예를 들어, USB를 통한 디버깅을 사용 설정하고, 버그 신고를 캡처하고, 탭한 항목의 시각적 피드백을 사용 설정하고, 창 표면이 업데이트될 때 깜박임을 표시하고, 2D 그래픽 렌더링에 GPU를 사용하는 등 다양한 작업을 수행할 수 있습니다.

개발자 옵션 및 디버깅 사용하기

그림 1. 개발자 옵션

Android 4.1 이하에서는 개발자 옵션 화면을 기본적으로 사용할 수 있습니다. Android 4.2 이상에서는 다음과 같이 이 화면을 사용 설정해야 합니다.

  1. 설정 앱을 엽니다.
  2. (Android 8.0 이상에만 해당) 시스템을 선택합니다.
  3. 아래로 스크롤하여 휴대전화 정보를 선택합니다.
  4. 아래로 스크롤하여 빌드 번호를 7번 탭합니다.
  5. 이전 화면으로 돌아가서 아래쪽에서 개발자 옵션을 찾습니다.

개발자 옵션 화면 상단에서 옵션을 켜거나 끌 수 있습니다(그림 1). 옵션을 계속 켜두는 것이 좋을 수 있습니다. 옵션이 꺼진 경우 기기와 개발용 컴퓨터 간에 통신이 필요 없는 옵션을 제외한 대부분의 옵션이 사용 중지됩니다.

그다음에 아래로 약간 스크롤하여 USB 디버깅을 사용 설정해야 합니다. 이렇게 해야 기기가 USB를 통해 연결될 때 Android 스튜디오와 기타 SDK 도구에서 인식되어 디버거와 기타 도구를 사용할 수 있습니다.

이 페이지의 나머지 부분에서는 이 화면에서 사용 가능한 기타 옵션을 설명합니다.

일반 옵션

Android 8.0 이상에서는 빠른 설정 개발자 타일을 탭하여 선택한 개발자 옵션을 빠른 설정 패널에 추가할 수 있습니다. 사용 가능한 타일을 하나 이상 선택한 후(그림 2) 빠른 설정 패널을 열고 연필을 탭하여 수정 모드로 전환합니다. 그런 다음, 타일 창에 있는 개발자 타일을 빠른 설정 패널로 드래그하고 연필을 다시 탭하여 수정 모드를 종료합니다.

그림 2. 빠른 설정 패널에 추가하기

기타 일반 옵션에는 다음 항목이 포함됩니다.

  • 메모리: (Android 8.0 이상의 경우) 평균 메모리 사용량, 메모리 성능, 사용 가능한 총 메모리, 사용된 평균 메모리, 사용 가능한 빈 메모리 크기, 앱이 사용 중인 메모리 크기 등의 메모리 통계를 표시합니다.
  • 버그 신고: 다른 사람과 공유할 현재 기기 로그 파일의 사본을 가져옵니다. 버그 신고가 준비되었다는 알림을 받으면 이 알림을 탭하여 버그 신고를 공유합니다.
  • 시스템 UI 데모 모드: 알림이나 배터리 부족 경고가 나타나지 않는, 미리 설정된 일반 알림바를 표시하여 깔끔한 스크린샷을 찍기가 더 쉽습니다. 데모 모드 사용에서는 adb 데모 모드 명령어를 사용하여 상태 표시줄의 모양을 변경할 수 있습니다. 또는 데모 모드 표시를 사용하여 알림을 숨기고 미리 설정된 상태 표시줄을 표시할 수 있습니다.
  • 데스크톱 백업 비밀번호: adb 명령어를 사용하여 기기 앱과 데이터를 비밀번호로 보호되는 상태에서 백업 및 복원할 수 있도록 백업 비밀번호를 설정합니다.
  • 화면 켜짐 상태 유지: 연결할 때마다 화면이 켜져 있도록 설정합니다.
  • 블루투스 HCI 스누프 로그 사용: 모든 블루투스 HCI 패킷을 파일에 캡처하여 /sdcard/btsnoop_hci.log에 저장합니다. 패킷을 검색한 다음, Wireshark 같은 프로그램을 사용하여 정보를 분석하고 문제를 해결할 수 있습니다.

디버깅

그림 3. 디버깅 옵션 사용 설정됨

디버깅 옵션을 사용하여 온디바이스 디버깅을 구성하고 기기와 개발용 컴퓨터 간에 통신할 수 있습니다.

USB 디버깅을 사용 설정하면(그림 3) Android 기기가 Android 디버그 브리지(adb)를 통해 개발용 컴퓨터와 통신할 수 있습니다. 디버거 연결을 위해 대기 옵션은 디버깅할 앱 선택을 사용하여 디버그할 앱을 선택한 후에만 사용할 수 있습니다. 디버거 연결을 위해 대기를 사용 설정하는 경우 선택한 앱은 디버거가 연결되기를 기다렸다가 연결 후에 실행됩니다.

기타 디버깅 옵션에는 다음 항목이 포함됩니다.

  • 로거 데이터를 기기에 영구 저장: 기기에 영구적으로 저장하려는 로그 메시지의 유형을 선택합니다. 옵션으로는 '사용 안함', '모두', '라디오 외 모두', '커널만'이 있습니다.
  • 모의 위치 앱 선택: 이 옵션을 사용하면 다른 위치에서 앱이 동일하게 동작하는지 여부를 테스트하기 위해 기기의 GPS 위치를 가상으로 만들 수 있습니다. 이 옵션을 사용하려면 GPS 가상 위치 앱을 다운로드하여 설치합니다.
  • 그림 4. 보기 속성

  • 보기 속성 검사 사용: 디버깅에 사용할 수 있도록 보기 속성 정보를 View 인스턴스의 mAttributes 멤버 변수에 저장합니다. 이 속성 정보는 Layout Inspector 사용자 인터페이스를 통해 액세스할 수 있으며(그림 4 참조), 사용 설정되지 않은 경우에는 'Attributes' 항목을 사용할 수 없습니다.
  • GPU 디버그 레이어 사용 설정: Android 9(API 레벨 28) 이상을 실행하는 기기에서 사용할 수 있는 옵션입니다. 이 옵션을 사용 설정하면 로컬 기기 저장용량에서 Vulkan 유효성 검사 레이어를 로드할 수 있습니다. 자세한 내용은 Android의 Vulkan 유효성 검사 레이어를 참조하세요.

네트워킹

그림 5. USB 설정 선택

네트워킹 옵션을 사용하여 Wi-Fi 및 DHCP 설정을 구성할 수 있습니다.

컴퓨터에서 기기가 식별되는 방법을 지정하려면 USB 설정 선택을 탭합니다. 그림 5에 나온 것처럼 충전 전용으로 기기를 구성하거나, 파일을 전송하거나(MTP), 사진을 전송하거나(PTP), PC에서 모바일 인터넷을 사용하거나(RNDIS), 오디오 또는 MIDI 파일을 전송하도록 기기를 구성할 수 있습니다.

블루투스 AVRCP 버전을 탭한 후 사용하려는 프로필 버전을 선택하면 기기에서 액세스 가능한 블루투스 A/V 장비를 모두 제어할 수 있습니다. 또한 기기의 오디오 재생을 미세 조정하려면 다음 옵션을 탭하고 설정합니다.

  • 블루투스 오디오 코덱: 다음 코덱 중 하나를 선택하여 기기의 음질(코덱)을 조정합니다.
    • SBC: 데이터를 헤드폰, 스피커 등의 블루투스 오디오 출력 기기로 전송합니다.
    • AAC: 유선 기기에서 비슷한 비트 전송률로 MP3보다 더 나은 음질을 제공합니다.
    • aptX: 고품질의 스마트폰, 스피커, 사운드바, 헤드폰 및 태블릿에서 깨끗한 무선 사운드를 제공합니다.
    • aptX HD: 블루투스 기기에 고해상도 스트리밍을 제공합니다.
    • LDAC: 무선 연결을 통해 높은 음질로 음악을 청취할 수 있도록 합니다.
    • 선택사항 코덱 사용 설정선택사항 코덱 사용 중지: 추가로 구현된 코덱이 있는 경우 이 코덱을 사용 설정하거나 중지하려면 이 옵션을 사용합니다.
  • 블루투스 오디오 샘플 범위: 오디오 코덱 샘플링 레이트를 선택하여 초당 오디오 샘플 수를 조정합니다. 샘플링 레이트가 높을수록 더 많은 리소스를 사용합니다.
  • 블루투스 오디오 샘플당 비트: 각 오디오 샘플 내 정보의 비트 수를 설정합니다. 비트 전송률이 높을수록 음질은 더 좋지만 샘플 파일은 더 커집니다.
  • 블루투스 오디오 채널 모드: 모노, 스테레오 중에서 선택합니다.
  • 블루투스 오디오 LDAC 코덱: 사운드를 최적화하여 음질을 개선하고, 오디오와 연결 품질 간의 균형을 유지하고, 연결 품질을 개선하고, 비트 전송률 자동 조절을 사용하여 오디오와 연결 품질 간의 균형을 유지합니다.

다음 목록에는 다른 방식으로 Wi-Fi 및 DHCP 설정을 구성하는 방법이 설명되어 있습니다.

  • 무선 디스플레이 인증서: Wi-Fi Alliance Wi-Fi 디스플레이 사양에 규정된 사양에 맞춰 무선 디스플레이 인증서의 제어 및 설정을 고급 구성으로 사용합니다. 이 인증서는 Android 4.4(API 레벨 19) 이상에 적용됩니다.
  • Wi-Fi 상세 로깅 사용: 연결되는 각 무선 네트워크(SSID)의 상대 수신 신호 강도(RSSI)에 따라 SSID의 Wi-Fi 로깅 수준을 증가시킵니다. 로그에 관한 자세한 내용은 Logcat에서 로그 쓰기 및 보기를 참조하세요.
  • Wi-Fi-셀룰러 적극 핸드오버: 이 옵션을 사용하면 신호가 약할 때 Wi-Fi가 보다 효율적으로 데이터 연결을 셀룰러 네트워크에 넘겨줄 수 있습니다.

입력

그림 6. 포인터 위치

탭한 항목 표시를 사용 설정하면 화면을 터치할 때 탭한 항목이 나타납니다. 손가락이나 스타일러스 아래에 원이 나타나며, 화면에서 손가락이나 스타일러스를 움직이면 원도 따라 움직입니다. 기기에서 동영상을 녹화할 때는 탭 동작이 포인터처럼 작동합니다.

포인터(탭) 위치를 기기상에 십자선으로 표시하려면 포인터 위치를 사용 설정합니다. 십자선 좌표를 추적하는 막대가 화면 상단에 나타납니다(그림 6). 포인터를 움직이면 이 막대의 좌표가 십자선의 위치를 추적하며 포인터 경로가 화면에 그려집니다.

그리기

그림 7. 사용자 인터페이스 구조

그리기 옵션에서는 앱의 사용자 인터페이스가 시각적으로 어떻게 표현될지 확인하고 인터페이스 작동 방식도 볼 수 있습니다.

레이아웃 범위 표시를 사용 설정하면 앱의 클리핑 경계, 여백, 기타 사용자 인터페이스 구조가 기기에 표시됩니다(그림 7 참조).

기타 그리기 옵션에는 다음 항목이 포함됩니다.

  • RTL 레이아웃 방향 강제 적용: 화면 레이아웃 방향을 오른쪽에서 왼쪽(RTL) 또는 왼쪽에서 오른쪽(기본값)으로 강제 설정합니다.
  • 창 애니메이션 배율: 다른 속도에서 성능을 확인할 수 있도록 창 애니메이션 재생 속도를 설정합니다. 배율이 낮을수록 속도는 더 빨라집니다.
  • 전환 애니메이션 배율: 다른 속도에서 성능을 확인할 수 있도록 전환 애니메이션 재생 속도를 설정합니다. 배율이 낮을수록 속도는 더 빨라집니다.
  • 보조 디스플레이 시뮬레이션: 기기에서 오버레이로 표시되도록 보조 디스플레이를 생성합니다. 이 옵션은 Presentation API에서 추가적인 디스플레이를 지원할 때 유용합니다. 보조 디스플레이를 참고하세요.

하드웨어 가속 렌더링

그림 8. 녹색약 색상 공간

하드웨어 가속 렌더링 옵션을 사용하면 GPU, 하드웨어 레이어, 멀티샘플 앤티앨리어싱(MSAA)과 같은 하드웨어 기반 옵션을 활용하여 타겟 하드웨어 플랫폼에 맞게 앱을 최적화할 수 있습니다.

기기 전체 UI의 색 구성표를 변경하려면 색상 공간 시뮬레이션을 탭합니다. 옵션은 색맹의 유형을 나타내며 사용 중지됨(시뮬레이션된 색 구성표 없음), 전색맹(검정, 흰색, 회색), 녹색약(적녹), 적색약(적녹), 청색약(청황) 중에서 선택할 수 있습니다. 적색약은 빨강이 잘 안 보이는 빨강-초록 색맹을 말하며, 그림 8의 녹색약은 녹색이 잘 안 보이는 빨강-초록 색맹을 말합니다.

시뮬레이션된 색상 공간에서 스크린샷을 찍으면, 마치 색 구성표를 바꾸지 않은 것처럼 스크린샷이 정상적으로 나타납니다.

하드웨어 기반 옵션을 활용하는 몇 가지 다른 방법은 다음과 같습니다.

  • GPU 렌더기 설정: 기본 Open GL 그래픽 엔진을 Open GL Skia 그래픽 엔진으로 변경합니다.
  • GPU 렌더링 강제 설정: 기본적으로 GPU 렌더링 없이 작성된 앱이 2D 그리기에 GPU를 사용하도록 합니다.
  • GPU 보기 업데이트 표시: GPU를 사용하여 그려진 모든 화면 요소를 표시합니다.
  • GPU 오버드로 디버그: 동일한 픽셀이 동일 프레임 내에 그려진 횟수를 시각화할 수 있도록 기기에 색 구분을 표시합니다. 시각화를 사용하면 앱이 필요 이상으로 더 많은 렌더링을 수행하는 부분을 표시할 수 있습니다. 자세한 내용은 GPU 오버드로 시각화를 참고하세요.
  • 사각형이 아닌 클립 작업 디버그: 캔버스에서 클리핑 영역을 사용 중지하여 사각형이 아닌 특이한 형태의 캔버스 영역을 만들 수 있게 합니다. 클리핑 영역을 사용할 때는 일반적으로 둥근 클리핑 영역의 경계 밖에 아무것도 그려지지 않습니다.
  • 4x MSAA 강제 사용: Open GL ES 2.0 앱에서 멀티샘플 안티앨리어싱(MSAA)을 사용 설정합니다.
  • HW 오버레이 사용 안함: 하드웨어 오버레이를 사용하면 화면에 무언가를 표시하는 각 앱에서 사용되는 처리 성능을 줄일 수 있습니다. 오버레이를 사용하지 않는 경우 앱은 비디오 메모리를 공유하며 적절한 이미지를 렌더링하기 위해 충돌이나 클리핑이 있는지 지속적으로 확인해야 합니다. 이 확인 작업에는 상당한 처리 성능이 사용됩니다.

미디어

그림 9. 막대 표현

USB 포트를 통해 컴퓨터에 연결된 외부 오디오 기기로 자동으로 라우팅되지 않도록 하려면 USB 오디오 연결 사용 중지를 선택합니다. 자동 라우팅은 USB를 인식하는 앱을 방해할 수 있습니다.

모니터링

모니터링 옵션을 사용하면 스레드가 긴 작업 및 GPU 작업과 같이 앱 성능과 관련하여 시각적 정보를 확인할 수 있습니다.

프로필 GPU 렌더링을 탭한 후 화면에 막대로 표시를 탭하여 GPU 렌더링 프로필을 막대로 표시합니다(그림 9). 자세한 내용은 프로필 GPU 렌더링을 참고하세요.

그림 10. 백그라운드 프로세스 제한 설정

앱 옵션은 대상 기기에서 앱이 어떻게 작동하는지 이해하도록 도와줍니다.

백그라운드에서 한 번에 실행할 수 있는 프로세스 수를 설정하려면 백그라운드 프로세스 수 제한을 탭합니다. 가능한 설정이 그림 10에 나타나 있습니다.

테스트 도중에 ShortcutManager 대역 제한 기능 재설정을 탭하면 백그라운드 앱이 호출 한도에 다시 도달할 때까지 계속해서 단축키 API를 호출할 수 있습니다. 단축키 및 호출 한도에 관한 자세한 내용은 ShortcutManager를 참고하세요.

활동 유지 안함을 사용하면 사용자가 활동의 기본 보기에서 나가자마자 모든 활동을 제거하여 배터리 수명을 늘릴 수 있습니다.