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

Hierarchy Viewer

안드로이드 앱성능 최적화 책을 보다 보니 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 파일 두개가 생성됩니다.

New module

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

Project Structure

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 가 나오고 있습니다. 너무 간단한 뷰라 생성시간이 딱히 측정할 건덕지도 없이 바로 나온다는걸까요?
다른소스를 돌려보던지 해야겠네요.


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다