Layout Inspector 및 레이아웃 검사로 레이아웃 디버깅

Android 스튜디오의 Layout Inspector를 사용하면 뷰 계층 구조를 표시하고 각 뷰의 속성을 검사하여 앱의 레이아웃을 디버그할 수 있습니다. Layout Inspector를 사용하면 앱 레이아웃을 디자인 모형과 비교하고 앱의 확대 뷰 또는 3D 뷰를 표시하며 런타임에 앱 레이아웃의 세부정보를 검토할 수 있습니다. 레이아웃이 완전히 XML로 빌드된 것이 아니라 런타임에 빌드되어 예상치 못한 방식으로 작동하는 경우 특히 유용합니다.

레이아웃 검사를 사용하면 여러 기기와 디스플레이 구성(예: 다양한 글꼴 크기나 사용자 언어)에서 레이아웃을 동시에 미리 볼 수 있어 여러 가지 일반적인 레이아웃 문제를 쉽게 테스트할 수 있습니다.

Layout Inspector를 열려면 연결된 기기나 에뮬레이터에서 앱을 실행한 다음 Tools > Layout Inspector를 선택합니다. 여러 기기 또는 프로젝트 간에 전환하면 연결된 기기의 포그라운드에서 실행되는 디버그 가능한 프로세스에 Layout Inspector가 자동으로 연결됩니다.

Sunflower 샘플 앱의 Layout Inspector 스냅샷

그림 1. Sunflower 샘플 앱의 Layout Inspector 스냅샷. Layout Inspector는 Component Tree, Layout Display, Attributes를 표시합니다(왼쪽에서 오른쪽 방향).

  • Component Tree: 레이아웃에 있는 뷰의 계층 구조입니다.
  • Layout Display: 기기 또는 에뮬레이터에 표시되는 앱의 레이아웃을 렌더링하며 각 뷰에 레이아웃 경계가 표시됩니다.
  • Attributes: 선택한 뷰의 레이아웃 속성입니다. Layout Inspector에서는 속성에 액세스하려면 활동을 다시 시작해야 합니다. 자세한 내용은 활동 다시 시작을 참고하세요.

Layout Editor에 관한 자세한 내용은 Layout Editor 소개를 참고하세요.

삽입된 Layout Inspector(실험용)

Android 스튜디오 Hedgehog부터 Running Devices 도구 창에서 직접 Layout Inspector를 실행할 수 있습니다. 이 실험용 기능은 Layout Inspector의 성능을 크게 개선하고, 화면 공간을 보존하며, 단일 도구 창에서 UI 디버깅 워크플로를 구성하는 데 도움이 됩니다. 삽입 모드를 사용 설정하는 방법은 다음과 같습니다.

  • Windows의 경우 File > Settings > Experimental > Layout Inspector로 이동합니다.
  • macOS에서는 Android Studio > Settings > Experimental > Layout Inspector로 이동합니다.

시작하는 방법과 일반적인 작업을 실행하는 방법은 다음과 같습니다.

  • Layout Inspector를 시작하려면 Running Devices 창으로 이동하여 Toggle Layout Inspector 삽입된 Layout Inspector 전환 버튼를 클릭합니다.
  • 계층 구조를 보고 각 뷰의 속성을 검사하려면 Component TreeAttribute Panel 도구 창을 사용합니다.
  • 뷰를 직접 한 번 클릭하여 뷰를 선택하거나 뷰를 더블클릭하여 코드로 이동하려면 Toggle Deep Inspect Toggle Deep Inspect 버튼를 사용 설정합니다.
  • 앱과 상호작용하려면 Toggle Deep Inspect Toggle Deep Inspect 버튼를 사용 중지합니다.
  • 실제 기기를 검사하려면 기기 미러링을 사용 설정합니다.
  • 3D 모드를 사용하려면 Layout Inspector Snapshot Layout Inspector 스냅샷을 가져옵니다.

삽입된 Layout Inspector

그림 2. Jetchat 앱의 삽입된 Layout Inspector

실시간 업데이트

Layout Display는 기기 또는 에뮬레이터에 표시되는 앱의 레이아웃을 렌더링하며 각 뷰에 레이아웃 경계가 표시됩니다. 각 구성요소를 클릭하여 검사할 수 있습니다.

Live Layout Inspector를 사용하면 앱의 UI가 API 수준 29 이상을 실행하는 기기나 에뮬레이터에 배포되는 동안 UI에 관한 포괄적이고 유용한 정보를 실시간으로 확인할 수 있습니다.

Live Layout Inspector를 사용 설정하려면 Layout Inspector 툴바에서 Live Updates 옵션을 선택합니다.

Live Layout Inspector에는 동적 레이아웃 계층 구조가 포함되어 있으므로 기기의 뷰가 변경될 때 Component TreeLayout Display가 업데이트됩니다.

뷰 선택 또는 격리

일반적으로 뷰는 사용자가 보고 상호작용할 수 있는 것을 그립니다. Component Tree는 각 뷰 구성요소와 함께 앱의 계층 구조를 실시간으로 표시하므로 개발자가 앱 내부의 요소와 이와 연결된 값을 시각화할 수 있어 앱의 레이아웃을 디버그할 수 있습니다.

뷰를 선택하려면 Component Tree 또는 Layout Display에서 뷰를 클릭합니다. 선택한 뷰의 모든 레이아웃 속성이 Attributes 패널에 표시됩니다.

레이아웃에 겹치는 뷰가 포함되어 있으면 Component Tree에서 클릭하거나 레이아웃을 회전하여 뒤에 있는 뷰를 선택할 수 있습니다.

복잡한 레이아웃을 사용하려면 레이아웃의 하위 집합만 Component Tree에 표시되고 Layout Display에 렌더링되도록 개별 뷰를 격리하면 됩니다.

뷰 격리 메뉴

그림 3. 뷰를 격리하려면 Component Tree에서 뷰를 마우스 오른쪽 버튼으로 클릭하고 Show Only Subtree 또는 Show Only Parents를 선택합니다.

전체 뷰로 돌아가려면 뷰를 마우스 오른쪽 버튼으로 클릭하고 Show All을 선택합니다.

레이아웃 테두리 및 뷰 라벨 숨기기

레이아웃 요소의 경계 상자나 뷰 라벨을 숨기려면 Layout Display 상단에서 View Options View Options 버튼를 클릭하고 Show Borders 또는 Show View Label을 전환합니다.

View Options 드롭다운 메뉴

그림 4. 레이아웃 테두리와 뷰 라벨을 숨기려면 Layout Inspector 툴바에서 두 번째 View Options를 클릭합니다.

3D 모드

Layout Display에는 런타임 시 앱의 뷰 계층 구조를 보여주는 고급 3D 시각화 기능이 있습니다. 이 기능을 사용하려면 Live Layout Inspector 창에서 3D Mode 버튼 3D 버튼을 클릭하고 마우스를 드래그하여 회전합니다.

Layout Inspector: 3D 뷰

그림 5. 회전한 레이아웃 3D 뷰

Layout Inspector: Layer Spacing 뷰

그림 6. 레이아웃의 레이어를 확장하거나 축소하려면 Layer Spacing 슬라이더를 사용하세요.

앱 레이아웃을 참조 이미지 오버레이와 비교하기

앱 레이아웃을 UI 모형과 같은 참조 이미지와 비교해 보려면 Layout Inspector에서 비트맵 이미지 오버레이를 로드하면 됩니다.

  • 오버레이를 로드하려면 Layout Inspector 툴바에서 Load Overlay 옵션을 선택합니다. 오버레이는 레이아웃에 맞게 조정됩니다.
  • 오버레이의 투명도를 조정하려면 Overlay Alpha 슬라이더를 사용합니다.
  • 오버레이를 삭제하려면 Clear Overlay 를 클릭합니다.

레이아웃 계층 구조 스냅샷 캡처

Layout Inspector를 사용하면 실행 중인 앱의 레이아웃 계층 구조의 스냅샷을 저장할 수 있으므로 스냅샷을 다른 사람과 손쉽게 공유하거나 나중에 참조할 수 있습니다.

스냅샷은 Layout Inspector를 사용할 때 일반적으로 표시되는 데이터(레이아웃의 세부 3D 렌더링을 비롯해 View 레이아웃, Compose 레이아웃 또는 하이브리드 레이아웃의 구성요소 트리 및 각 UI 구성요소의 세부 속성 포함)를 캡처합니다. 스냅샷을 저장하려면 다음 단계를 따르세요.

  1. Layout Inspector를 엽니다.
  2. Layout Inspector가 앱 프로세스에 자동으로 연결됩니다. 자동으로 연결되지 않으면 드롭다운 메뉴에서 앱 프로세스를 선택합니다.
  3. 스냅샷을 캡처하려면 Layout Inspector 툴바에서 Export snapshot 내보내기 아이콘을 클릭합니다.
  4. 표시되는 시스템 대화상자에서 스냅샷을 저장할 이름과 위치를 지정합니다. *.li 확장자로 파일을 저장해야 합니다.

그러면 기본 메뉴 바에서 File > Open을 선택하고 *.li 파일을 열어 Layout Inspector 스냅샷을 로드할 수 있습니다.

Layout Inspector 스냅샷 gif

그림 7. Layout Inspector에서 스냅샷 생성

Compose 검사

Layout Inspector를 사용하면 에뮬레이터나 실제 기기에서 실행 중인 앱 내의 Compose 레이아웃을 검사할 수 있습니다. Layout Inspector를 사용하여 컴포저블이 얼마나 자주 재구성되거나 건너뛰는지 확인하고, 이를 통해 앱의 문제를 파악할 수 있습니다. 예를 들어 일부 코딩 오류로 인해 UI가 과도하게 재구성될 수 있으며 이는 성능 저하를 야기할 수 있습니다. 또는 일부 코딩 오류로 인해 UI가 재구성되지 않아 UI 변경사항이 화면에 표시되지 않을 수도 있습니다.

Compose용 Layout Inspector 자세히 알아보기

활동 다시 시작 방지

Layout Inspector가 제대로 작동하려면 다음 전역 설정 중 하나가 필요합니다. 전역 설정을 지정하지 않으면 Layout Inspector에서 자동으로 설정합니다.

  1. adb shell settings put global debug_view_attributes_application_package <processname>

    이 옵션은 지정된 프로세스를 검사하기 위한 추가 정보를 생성합니다.

  2. adb shell settings put global debug_view_attributes 1

    이 옵션은 기기의 모든 프로세스에서 검사하기 위한 추가 정보를 생성합니다.

전역 설정을 변경하면 활동이 다시 시작될 수 있습니다. 활동이 다시 시작되지 않도록 하려면 Android 스튜디오에서 설정을 변경하거나 기기의 설정에서 개발자 옵션을 변경하면 됩니다.

Android 스튜디오에서 자동 새로고침을 사용 설정하려면 메뉴에서 Run > Edit Configurations를 선택하여 Run/Debug Configurations를 엽니다. 그런 다음 Miscellaneous 탭으로 이동하여 Layout Inspector Options에서 Connect to Layout Inspector without restarting activity 체크박스를 선택합니다.

실행 구성의 활동 다시 시작 옵션

그림 12. Run/Debug Configurations에서 자동 새로고침 사용 설정

또는 기기의 개발자 옵션을 사용 설정하고 기기의 개발자 설정에서 뷰 속성 검사 사용 설정을 사용 설정합니다.

레이아웃 검사

레이아웃 검사는 다양한 기기 및 디스플레이 구성의 레이아웃을 동시에 미리 볼 수 있는 시각적 도구로, 프로세스 초기에 레이아웃의 문제를 포착할 수 있습니다. 이 기능에 액세스하려면 IDE 창의 오른쪽 상단에 있는 Layout Validation 탭을 클릭합니다.

레이아웃 검사 탭 스크린샷

그림 13. 레이아웃 검사 탭

사용 가능한 구성 집합 간에 전환하려면 Layout Validation 창의 상단에 있는 Reference Devices 드롭다운 메뉴에서 다음 중 하나를 선택합니다.

  • Reference Devices
  • 맞춤식
  • Color Blind
  • Font Sizes

Layout Validation 도구의 드롭다운 메뉴 스크린샷

그림 14. 참조 기기 드롭다운 메뉴 옵션

Reference Devices

참조 기기는 테스트 시 권장하는 비교 대상 기기입니다. 참조 기기에는 스마트폰, 폴더블, 태블릿, 데스크톱 인터페이스가 포함됩니다. 이 참조 기기 세트에서 레이아웃이 어떻게 표시되는지 미리 보아야 합니다.

다양한 참조 기기의 레이아웃 미리보기 스크린샷

그림 15. Layout Validation 도구의 참조 기기 미리보기

맞춤식

미리 볼 디스플레이 구성을 맞춤설정하려면 언어, 기기, 화면 방향 등 다양한 설정 중에서 선택합니다.

Layout Validation 도구에서 기기 디스플레이 맞춤설정

그림 16. Layout Validation 도구의 맞춤 디스플레이 구성

Color Blind

색맹인 사용자가 앱을 더 쉽게 사용할 수 있도록 하려면 일반적인 유형의 색맹 시뮬레이션으로 레이아웃을 검사합니다.

다양한 유형의 색맹에 관한 시뮬레이션 미리보기 스크린샷

그림 17. Layout Validation 도구의 색맹 시뮬레이션 미리보기

Font Sizes

다양한 글꼴 크기로 레이아웃을 검사하고, 큰 글꼴로 레이아웃을 테스트하여 시각장애인 사용자를 위한 앱의 접근성을 개선합니다.

큰 글꼴의 레이아웃 오류가 표시된 다양한 글꼴 크기의 앱 레이아웃 미리보기

그림 18. Layout Validation 도구의 다양한 글꼴 크기 미리보기