lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

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

Android의 Settings 앱에는 Developer options라는 화면이 포함됩니다. 이 화면에서 앱 성능 프로파일링과 디버깅을 도와주는 시스템 동작을 구성할 수 있습니다. 예를 들어, USB를 통해 디버깅을 활성화하고, 버그 보고서를 캡처하고, 탭의 시각적 피드백을 활성화하고, 창 표면이 업데이트될 때 깜박임을 표시하고, 2D 그래픽 렌더링에 GPU를 사용하는 등의 작업을 수행할 수 있습니다.

개발자 옵션 및 디버깅 활성화

그림 1. 개발자 옵션

Android 4.1 이하에서는 Developer options 화면을 기본적으로 사용할 수 있습니다. Android 4.2 이상에서는 다음과 같이 이 화면을 활성화해야 합니다.

  1. Settings 앱을 엽니다.
  2. (Android 8.0 이상에만 해당) System을 선택합니다.
  3. 아래로 스크롤하여 About phone을 선택합니다.
  4. 아래로 스크롤하여 Build number를 7번 탭합니다.
  5. 이전 화면으로 돌아가서 아래쪽의 Developer options를 찾습니다.

Developer options 화면 상단에서 옵션 켜기와 끄기를 전환할 수 있습니다(그림 1). 이 기능을 계속 켜두고 싶을 수도 있습니다. 꺼진 경우에는, 기기와 개발용 컴퓨터 간에 통신이 필요없는 옵션을 제외한 대부분의 옵션이 비활성화됩니다.

그 다음 아래로 약간 스크롤하여 USB debugging을 활성화해야 합니다. 이렇게 하면 기기가 USB를 통해 연결될 때 Android Studio와 기타 SDK 도구들이 이 기기를 인식할 수 있기 때문에 개발자가 디버거와 기타 도구를 사용할 수 있습니다.

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

일반 옵션

Android 8.0 이상에서는 Quick settings developer tiles를 탭하여 선택한 개발자 옵션을 Quick Settings 패널에 추가할 수 있습니다. 사용 가능한 하나 이상의 타일을 선택한 후(그림 2), Quick Settings 패널을 열고 연필을 탭하여 편집 모드로 들어갑니다. 그런 다음, 타일 창에서 개발자 타일을 Quick Settings 패널로 드래그하고 연필을 다시 탭하여 편집 모드를 종료합니다.

그림 2. Quick Settings 패널에 추가

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

  • Memory: (Android 8.0 이상의 경우) 평균 메모리 사용량, 메모리 성능, 사용 가능한 총 메모리, 사용된 평균 메모리, 사용 가능한 빈 메모리 크기, 앱이 사용 중인 메모리 크기 등의 메모리 통계를 표시합니다.
  • Take bug report: 다른 사람과 공유할 현재 기기 로그 파일의 복사본을 가져옵니다. 버그 보고서가 준비되었다는 알림을 받으면 이 알림을 탭하여 보고서를 공유합니다.
  • System UI demo mode: 알림이나 배터리 부족 경고가 표시되지 않는 일반적인 프리셋 알림 막대를 표시하므로, 보다 쉽게 선명한 스크린샷을 찍을 수 있습니다. Enable Demo Mode에서는 adb 데모 모드 명령을 사용하여 상태 표시줄의 모양을 변경할 수 있습니다. 또는 Show Demo Mode를 사용하여 알림을 숨기고 프리셋 상태 표시줄을 표시할 수 있습니다.
  • Desktop backup password: adb 명령을 사용하여 기기 앱과 데이터를 암호로 백업하고 복원할 수 있도록 백업 암호를 설정합니다.
  • Stay awake: 연결할 때마다 화면이 켜져 있도록 설정합니다.
  • Enable Bluetooth Host Controller Interface (HCI) snoop log: 모든 블루투스 HCI 패킷을 파일에 캡처하여 /sdcard/btsnoop_hci.log에 저장합니다. 패킷을 검색한 다음, Wireshark과 같은 프로그램을 사용하여 정보를 분석하고 문제를 해결할 수 있습니다.

디버깅

그림 3. 활성화된 디버깅 옵션

디버깅 옵션은 온디바이스 디버깅을 구성하는 방법과 기기와 개발용 컴퓨터 간에 통신을 연결하는 방법을 제공합니다.

USB debugging(그림 3)을 활성화하면 Android 기기가 Android Debug Bridge (ADB)를 통해 개발용 컴퓨터와 통신할 수 있습니다. Select debug app을 사용하여 디버깅할 앱을 선택할 때까지는 Wait for Debugger 옵션을 사용할 수 없습니다. Wait for Debugger를 활성화한 경우, 선택한 앱은 실행하기 전에 디버거가 연결되기를 기다립니다.

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

  • Store logger data persistently on device: 기기에 영구적으로 저장하려는 로그 메시지의 유형을 선택합니다. 옵션은 off, all, all but radio 또는 kernal only입니다.
  • Select mock location app: 다른 위치에서 앱이 동일하게 동작하는지 여부를 테스트하기 위해 기기의 GPS 위치를 모조하려면 이 옵션을 사용합니다. 이 옵션을 사용하려면 GPS 모조 위치 앱을 다운로드하고 설치합니다.
  • 그림 4. 뷰 속성

  • Enable view attribute inspection: 디버깅에 사용할 수 있도록 뷰 속성 정보를 View 인스턴스의 mAttributes 멤버 변수에 저장합니다. 속성 정보는 Layout Inspector 사용자 인터페이스를 통해 액세스할 수 있으며(그림 4 참조), 활성화되지 않은 경우에는 'Attributes' 항목을 사용할 수 없습니다).

네트워킹

그림 5. USB 구성 선택

네트워킹 옵션은 Wi-Fi 및 DHCP 설정을 구성하는 방법을 제공합니다.

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

기기가 액세스 권한을 보유한 모든 블루투스 A/V 장비를 제어하려면, Bluetooth AVRCP version을 탭하고 사용하려는 프로필 버전을 선택합니다. 또한 기기에서 오디오 재생을 미세 조정하려면 다음 옵션을 탭하고 설정합니다.

  • Bluetooth Audio Codec: 다음 코덱 중 하나를 선택하여 기기의 음질(코덱)을 조정합니다.
    • SBC: 데이터를 블루투스 오디오 출력 기기(예: 헤드폰 및 스피커)로 전송합니다.
    • AAC: 유선 기기에서 비슷한 비트 전송률로 MP3보다 더 나은 음질 제공.
    • aptX: 고품질의 스마트폰, 스피커, 사운드바, 헤드폰 및 태블릿에서 깨끗한 무선 사운드 제공.
    • aptX HD: 블루투스 기기에 고해상도 스트리밍 제공.
    • LDAC: 무선 연결을 통해 고품질의 음악 청취 환경 제공.
    • Enable Optional CodecsDisable Optional Codecs: 코덱이 추가로 설치된 경우 이 옵션을 사용하여 코덱을 활성화/비활성화합니다.
  • Bluetooth Audio Sample Range: 오디오 코덱 샘플 속도를 선택하여 초당 오디오 샘플 수를 조정합니다. 샘플 속도가 높을수록 더 많은 리소스를 사용합니다.
  • Bluetooth Audio Bits Per sample: 각 오디오 샘플에서 정보 비트 수를 설정합니다. 비트 전송률이 높을수록 음질은 더 뛰어나지만 샘플 파일은 더 커집니다.
  • Bluetooth Audio Channel Mode: 모노 또는 스테레오를 선택합니다.
  • Bluetooth Audio LDAC Codec: 사운드를 최적화하여 오디오 품질을 개선하고, 오디오와 연결 품질 간의 균형을 유지하고, 연결 품질을 개선하고, 어댑티브 비트 전송률을 사용하여 오디오와 연결 품질 간의 균형을 유지합니다.

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

  • Wireless display certification: Wi-Fi Alliance Wi-Fi 디스플레이 사양에 규정된 사양에 따라 Wireless Display certification에 대해 고급 구성 컨트롤과 설정을 활성화합니다. 이 인증은 Android 4.4(API 레벨 19) 이상에 적용됩니다.
  • Enable Wi-Fi verbose logging: 연결되는 각 무선 네트워크(SSID)의 상대 수신 신호 강도(RSSI)에 따라 SSID의 Wi-Fi 로깅 수준을 증가시킵니다. 로그에 대한 자세한 내용은 Logcat에서 로그 쓰기 및 보기를 참조하세요.
  • Aggressive Wi-Fi to cellular handover: 신호가 약한 경우, Wi-Fi가 보다 효율적으로 데이터 연결을 셀룰러 네트워크에 넘겨주도록 합니다.

입력

그림 6. 포인터 위치

화면을 터치할 때 탭을 표시하려면 Show taps를 활성화합니다. 손가락이나 스타일러스 아래에 원이 나타나며, 화면에서 손가락이나 스타일러스를 움직이면 원도 따라 움직입니다. 기기에서 동영상 녹화 시, 탭이 포인터처럼 작동합니다.

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

그리기

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

그리기 옵션은 앱의 사용자 인터페이스에 대한 시각 신호와 그 작동 방식을 제공합니다.

앱의 클리핑 경계, 여백 및 기타 사용자 인터페이스 구조를 기기에 표시하려면 Show Layout Bounds를 활성화합니다(그림 7 참조).

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

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

하드웨어 가속 렌더링

그림 8. Deuteranomaly 색공간

하드웨어 가속 렌더링 옵션은 GPU, 하드웨어 레이어, 멀티샘플 안티앨리어싱(MSAA)과 같은 하드웨어 기반 옵션을 활용하여 대상 하드웨어 플랫폼에 맞게 앱을 최적화하는 방법을 제공합니다.

전체 기기 UI의 색 구성표를 변경하려면 Simulate color space를 탭합니다. 이 옵션은 색맹의 유형을 나타냅니다. 선택 항목은 Disabled(시뮬레이션된 색 구성표 없음), Monochromacy(검정, 흰색, 회색), Deuteranomaly(빨강-녹색), Protanomaly(빨강-녹색) 및 Tritanomaly(파랑-노랑)입니다. Protanomaly는 빨강이 잘 안보이는 빨강-녹색 색맹을 말하며, 그림 8의 Deuteranomaly는 녹색이 잘 안보이는 빨강-녹색 색맹을 말합니다.

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

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

  • Set GPU rederer: 기본 Open GL 그래픽 엔진을 Open GL Skia 그래픽 엔진으로 변경합니다.
  • Force GPU rendering: 기본적으로 GPU 렌더링이 없이 앱이 작성된 경우, 앱이 2D 그리기에 GPU를 사용하도록 합니다.
  • Show GPU view updates: GPU를 사용하여 그려진 모든 화면 요소를 표시합니다.
  • Debug GPU overdraw: 동일 프레임 내에서 동일 픽셀이 몇 번 그려졌는지를 시각화할 수 있도록 기기에 컬러 코딩을 표시합니다. 시각화를 사용하면 앱이 필요 이상으로 더 많은 렌더링을 수행했던 부분을 표시할 수 있습니다. 자세한 내용은 GPU 오버드로 시각화를 참조하세요.
  • Debug non-rectangular clip operations: 사각형이 아닌 특이한 형태의 캔버스 영역을 만들려면 캔버스에서 클리핑 영역을 해제합니다. 일반적으로, 클리핑 영역에서는 둥근 클리핑 영역의 경계 밖에 아무 것도 그려지지 않습니다.
  • Force 4x MSAA: Open GL ES 2.0 앱에서 멀티샘플 안티앨리어싱(MSAA)을 활성화합니다.
  • Disable HW overlays: 하드웨어 오버레이를 사용하면 화면에 무언가를 표시하는 각 앱이 처리 성능을 덜 사용할 수 있습니다. 오버레이가 없는 경우 앱이 비디오 메모리를 공유하며, 앱이 적절한 이미지 렌더링을 위해 충돌과 클리핑이 있는지 지속적으로 확인해야 합니다. 이 확인 작업에는 상당한 처리 성능이 사용됩니다.

미디어

그림 9. 막대 표시

USB 포트를 통해 컴퓨터에 연결된 외부 오디오 기기로의 자동 라우팅을 비활성화하려면 Disable USB audio routing을 활성화합니다. 자동 라우팅은 USB를 인식하는 앱과 충돌할 수 있습니다.

모니터링

모니터링 옵션은 긴 스레드, GPU 연산 등의 앱 성능에 대한 시각적 정보를 제공합니다.

Profile GPU Rendering을 누른 다음, On screen as bars를 탭하여 GPU 렌더링 프로필을 막대로 표시합니다(그림 9). 자세한 내용은 GPU 렌더링 프로파일링을 참조하세요.

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

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

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

테스트 중에 Reset ShortcutManager rate-limiting을 탭하면, 속도 제한에 다시 도달할 때까지 백그라운드 앱이 계속해서 단축키 API를 호출할 수 있습니다. 단축키와 속도 제한에 대한 자세한 내용은 ShortcutManager를 참조하세요.

사용자가 activity의 기본 뷰를 떠나자마자 모든 activity를 폐기하여 배터리 수명을 늘리려면 Don't keep activities를 활성화합니다.