Layout Inspector로 레이아웃 디버깅하기
지난주에 Android Studio 4.0이 Stable 채널에 업데이트되었습니다. 생각보다 새로운 기능들이 많은데, 앞으로 하나씩 포스팅해보도록 하겠습니다. 왜 항상 이 친구들은 좋은 기능 만들어 놓고 꽁꽁 숨겨두는지 모르겠습니다.
뭐 할때 쓰는 걸까
공식 문서에서는 Layout Inspector를 '레이아웃이 완전히 XML로 빌드된 것이 아니라 런타임에서 빌드되어 예상치 못한 방식으로 작동될 때 유용하다.' 라고 설명하고 있습니다.
제가 해석하기로는 아마 레이아웃 구성 시 XML코드로 짜는 것이 아닌 클래스를 통해 레이아웃을 구성하거나 값들을 변경하였을 때 예상치 못한 오류가 발생하는 경우(위젯이 사라지거나 이상한 곳에 배치되는 경우) 디버깅에 유용한 툴 정도로 해석했습니다.
레이아웃의 구성을 XML코드로 작성 시 Component Tree에 레이아웃 구성요소가 자세하게 나와있습니다. Preview를 통해서도 실행 시 어떻게 보여지는지에 대하여 미리보기를 제공하고 있습니다. XML로 구성을 했기 때문에 만약 실행 시 위젯이 보이지 않더라도 Component Tree에서 해당 위젯을 찾고 XML에서 수정할 수 있죠.
그러나, 클래스(아마 런타임..)를 통해 View를 생성하게 되면 각 위젯들이 어떻게 구성되어있고 생성되었는지 알 수 없습니다. 보여지는게 다죠. 이럴 때 레이아웃을 디버깅 할 수 있게 도와주는 툴이 Layout Inspector입니다.
위 사진처럼 디버깅 중인 프로세스를 선택하면 현재 보고 있는 View에 대한 캡처가 진행되고 정보를 보여줍니다. XML로 구성한 위젯들은 물론이고 런타임을 통해 구성된 위젯들과 View 모두 XML에서 구성한 것 처럼 Component Tree에서 확인할 수 있습니다. 각 위젯들을 클릭하면 해당 위젯들의 속성(Attributes)을 확인할 수 있습니다.
앞으로도 자주 써먹을 법한 유용한 기능이네요.
앞으로도 Android Studio의 숨겨진 기능을 하나씩 리뷰? 해보는 포스팅을 종종 작성해 보겠습니다.
감사합니다.
'Android' 카테고리의 다른 글
Cannot invoke setValue on a background thread 해결 방법 (0) | 2020.08.03 |
---|---|
RecyclerView에 줄 라인 추가하기(Divider) (0) | 2020.07.27 |
Android에서의 MVVM은 무엇이고 왜 사용하는가 (0) | 2020.04.06 |
Android 아키텍처 컴포넌트를 사용한 구조 개선 (0) | 2020.04.03 |
'onMessageReceived' overrides nothing 해결 (1) | 2020.03.30 |
댓글
이 글 공유하기
다른 글
-
Cannot invoke setValue on a background thread 해결 방법
Cannot invoke setValue on a background thread 해결 방법
2020.08.03 -
RecyclerView에 줄 라인 추가하기(Divider)
RecyclerView에 줄 라인 추가하기(Divider)
2020.07.27 -
Android에서의 MVVM은 무엇이고 왜 사용하는가
Android에서의 MVVM은 무엇이고 왜 사용하는가
2020.04.06 -
Android 아키텍처 컴포넌트를 사용한 구조 개선
Android 아키텍처 컴포넌트를 사용한 구조 개선
2020.04.03