레이블이 분석인 게시물을 표시합니다. 모든 게시물 표시
레이블이 분석인 게시물을 표시합니다. 모든 게시물 표시

2017년 7월 7일 금요일

안드로이드 성능분석 툴 - Systrace

Systrace

준비작업

  1. Tools -> Android -> Android Device Monitor를 실행한다.
스크린샷 2017-04-21 오후 12.21.51.png
  1. 아래와 같은 팝업이 뜬다면 YES를 선택한다.(안뜨면 다음단계부터 진행)
스크린샷 2017-04-21 오후 12.24.11.png
  1. Android Device Monitor가 떴으면, 오른쪽 상단에서 DDMS 탭 선택
    • 만약 탭이 없다면, 그림에서 표시된 부분의 가장 왼쪽 버튼(Open Perspective)를 선택하여 DDMS를 선택한다.
스크린샷 2017-04-26 오전 10.18.07.png
  1. 왼쪽의 Device 탭에서 디바이스이름과 밑으로 현재 실행중인 프로세스목록이 뜨는것을 확인한다. 분석할 프로세스를 선택한 후에, 스크린샷에 표시된 버튼(Systrace)을 클릭한다.
스크린샷 2017-04-26 오전 10.27.36.png
  1. Systrace버튼을 클릭하면 다음의 팝업이 뜨는데, Trace 시간, 버퍼크기, 측정항목 들을 변경할 수 있다. 적절한 값을 설정한 후에 OK 를 선택한다.
    • Destination File : Trace 결과는 html 파일로 저장되는데, 그 파일이 저장될 경로를 선택한다.
    • Trace duration : Trace 를 수행할 시간
    • Trace Buffer Size : Trace 버퍼
    • Enable Application Trace from : Trace를 수행할 프로세스
    • Commonly Used Tags : 일반적으로 사용되는 항목들
    • Advanced Options : 추가로 붐석할 항목들
스크린샷 2017-04-26 오전 10.33.40.png
  1. 앱을 이용한다.(분석하고자 하는 동작을 수행)
  2. 생성된 html 파일을 브라우저로 실행한다.

분석방법

스크린샷 2017-04-26 오전 11.07.33.png
  • 도움말을 보고 분석툴 UI 숙지(스크린샷의 1번)
  • 화면을 스크롤하여 Trace한 프로세스를 찾는다.(스크린샷의 2번)
  • 해당 프로세스의 프레임을 확인한다.(스크린샷의 3번)
    • 초록색 : 프레임 양호
    • 노란색 : 프레임지연 다소 있음
    • 빨간색 : 프레임지연 많이 있음
  • 해당 프레임을 선택하면 하단의 영역(스크린샷의 4번)에서 대략적인 지연 원인을 확인할 수 있다.
  • 프레임 외에, UI Thread 등 다른 영역에 표시된 부분을 선택해도 시간 / 설명 등 여러 정보를 확인할 수 있다.

2016년 10월 13일 목요일

[안드로이드] 안드로이드 스튜디오 로그캣 120% 활용하기

로그 분류

안드로이드는 로그를 찍을 때, android.util.Log 클래스를 이용하는데, 이 클래스는 Log.v(), Log.d(), Log.i(), Log.w(), Log.e() 5가지 스태틱 메서드를 이용해 로그를 찍을 수 있도록 되어있다. 어떤 메서드를 이용해도 로그캣에는 로그가 남겨지지만, 각각의 로그가 지니는 의미가 다르다.
  • Log.v() - Verbose : 프로그램의 진행 흐름을 확인하기 위한 로그
  • Log.d() - Debug : 디버그를 위한 로그
  • Log.i() - Info : 정보 전달용 로그
  • Log.w() - Warning : 경고성 이슈를 보여주기 위한 로그
  • Log.e() - Error : 오류를 표시하기 위한 로그
이 의미를 다 지키면서 로그를 찍을 필요는 없고, 하나하나 생각하면서 찍는 것은 시간낭비일 것이다. 그러나, 안드로이드 스튜디오의 로그캣 기능과 같이 활용하면 로그를 보는 시간이 크게 단축되어 유지보수하기 편해진다.

안드로이드 스튜디오 로그캣

로그별 색깔 변경하기

안드로이드 스튜디오는 로그 종류별로 색을 다르게 지정할 수 있다.
1.안드로이드 스튜디오의 설정을 들어간다.(맥 단축키 : cmd + ,)
2.Editor -> Colors & Fonts -> Android Logcat 을 들어간다.
로그캣 색깔 지정
3.각 로그 분류 별로 텍스트&배경 색을 지정할 수 있다. 디폴트는 Error, Assert 로그만 텍스트 색이 빨간색이고 그 외에는 모두 흰색이다. 색상변경이 비활성화 되어있다면, Use inherited attributes 체크를 해제하고, 커스텀 설정을 생성한 후에 변경할 수 있다.
  • Foreground : 텍스트 색
  • Background : 배경 색
4.Apply / OK 버튼을 눌러 설정을 완료한다.

로그캣 필터

로그캣에는 디폴트로 모든 앱들의 로그들이 찍히기 때문에, 내가 필요한 로그를 찾기가 쉽지 않다. 이 때, 커스텀 필터를 만들면 원하는 로그만 쉽게 찾아볼 수 있다. 다음의 5가지 항목을 기준으로 필터링 가능하다.
  • 로그 Tag
  • 로그 메세지
  • 패키지 이름
  • PID
  • Log Level
로그캣 필터

2016년 9월 27일 화요일

[안드로이드] 안드로이드 스튜디오를 이용한 코드정리

1.정적 코드분석

  • Android Studio는 기본으로 내장된 Lint가 있어서, 이 Lint를 이용해 정적 코드분석을 수행할 수 있다.
  • 이 Lint를 이용하면 Android 관련 코드, 자바, JSON,. XML, Gradle, C/C++ 등... 안드로이드의 모든 소스에 대한 정적 분석을 수행할 수 있다!!

코드분석기 설정

  • Preference 창을 연다.(맥의 경우 단축키 cmd + ',')
  • 왼쪽의 메뉴에서 Editor -> Inspections를 찾아 들어간다.
  • 필요한 분석기를 체크하고 OK / Apply 버튼을 눌러 저장한다.
CodeAnalize

정적 코드분석 수행

  • 상단 메뉴에서 Analyze -> Inspect Code를 선택한다.
  • 코드분석을 수행할 범위를 선택한 후 분석을 시작한다.
  • 분석이 끝나면 하단에 분석결과가 나온다.
  • 이 분석결과는 위에서 체크한 코드분석기의 결과만 반영한다.
Code Analize

2. Pre-Commit 코드분석

  • Android Studio는 내장된 Pre-Commit hook이 있다.
  • 이 hook은 Commit 대상 파일에만 동작한다.
Code Analize

  • Commit 화면에서 체크 후에 Commit을 수행하면 해당 hook이 동작하게 되고, 작업이 실패하게 되면, 작업 결과와 함꼐 그냥 commit을 할껀지, 작업 결과를 볼껀지 선택할 수 있다.Code Analize
  • 결과 보기를 선택하면 하단에 결과가 노출된다.
Code Analize