안드로이드 Hierarchy Viewer와 ViewServer를 써보자

안드로이드 앱성능 최적화 책을 보다 보니 Hierarchy Viewer라는게 나옵니다.
위 사진같은건데 화면 디자인 할때 다양한 뷰에 대해 중첩되는거랑 화면 표시할때 시간 등등 각종 정보를 알려주는 툴이지요.

이 책을 보기전엔 몰랐는데 RelativeLayout랑 LinearLayout등이 중첩되서 여러개 있으면 측정시간이 기하급수적으로 늘어난다는군요.  (예전에 디자인 적용할때 사각 테두리 라인 그릴때 레이아웃 두개 중첩해서 간격으로 색 입히곤 했었던게 생각나네요)
책을 보면서 책만 보지 말고 한번 해봐야 겠다 싶어서 해보고 블로그에 간단하게 사용법 정리합니다.

Hierarchy Viewer는 android-sdk-windows/tools/hierarchyviewer.bat 를 실행시키면 됩니다.
그냥 실행만 하면 아무것도 나오지 않습니다.
뷰를 보고 싶은 앱에 ViewServer 라이브러리와 코드를 넣어야 합니다.
ViewServer 소스 : https://github.com/romainguy/ViewServer

소스 받아서 빌드한번 돌리면 Android/ViewServer-master/viewserver/build/outputs/aar 폴더에
viewserver-debug.aar, viewserver-release.aar 파일 두개가 생성됩니다.

이제 Hierarchy Viewer를 사용할 프로젝트에 viewserver-release.aar를 추가합니다.
File – New Module – import .JAR/.AAR Package를 선택합니다.

File – Project Structure 를 실행한뒤 우측 녹색+을 눌러서 Module dependency를 눌러 viewserver-release 모듈을 추가합니다.

아래와 같은 코드를 넣어줍니다.

public class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set content view, etc.
        ViewServer.get(this).addWindow(this);
    }
 
    public void onDestroy() {
        super.onDestroy();
        ViewServer.get(this).removeWindow(this);
    }
 
    public void onResume() {
        super.onResume();
        ViewServer.get(this).setFocusedWindow(this);
    }
}

빌드하고 핸드폰에 넣고 실행합니다.

Hierarchy Viewer를 실행합니다.

주의점이 핸드폰 앱이 먼저 실행된 상태에서 Hierarchy Viewer를 실행해야 합니다.
refresh device 아무리 눌러도 안나오다가 Hierarchy Viewer를 다시 실행하니 나오더군요.
책에선 뷰마다 생성시간이라던지 이것저것 나온다는데 제가 돌려본건 죄다  n/a 가 나오고 있습니다.
너무 간단한 뷰라 생성시간이 딱히 측정할 건덕지도 없이 바로 나온다는걸까요?
다른소스를 돌려보던지 해야겠네요.


크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.