ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드 개발팁]린트 경고를 사용하기
    개발 2013.05.14 21:24

     

    안드로이드 개발 프로젝트가 커지면 역시나 소스를 최적화하고 문제를 좀 더 쉽게 찾는 도구들이 많이 필요 하다

    특히 안드로이드의 경우 화면 레이아웃을 XML로 코딩 하는데

    하나의 UI 를 표시하는 방식이 개발자의 숙련도와 능력에 따라 천차만별.

    그 만큼 잘못 구현해서 성능을 저하시키거나 오류를 내포할 위험도 크다.

    아무래도 하나의 XML 로 다양한 화면을 모두 지원하려면 꼼수(?)나 노하우 또는 성능 저하를 가져오는 weight 속성을 많이 사용해야 할 수 있다.

     

    린트 경고(Lint Warning) 를 사용하면 정말 이렇게 많은 문제를 우리 프로젝트가 가지고 있나 싶을 정도로 많은 경고가 나온다.

     

    Lint 가 알려주는 경고가 너무 많기 때문에 옵션에서 원하지 않는 항목은 제거 하는 것이 정신 건강에 이롭다.

    물론 처음에는 이 모든 오류를 먼저 아는 것이 중요하기 때문에 디폴트 속성을 그대로 두고 실행해 보자

     

    주요한 린트 경고들

    • 잘못 된 레이아웃 파라미터 - 화면을 만들다 보면 Linear 와 Relative 를 오가다가 레이아웃 속성을 변경하지 않고 그냥 두는 경우가 많이 생긴다. 개발자의 이런 실수를 린트는 간단하게 찾아낸다.
      예시 - "Invalid layout param in a LinearLayout: layout_alignParentLeft"
    • 중첩된 weight 에 대한 경고 - 하나의 xml 레이아웃으로 모든 해상도를 만족하는 화면을 만들려다 보면 weight 의존도가 계속 커진다. 문제는 이런 weight 들이 중첩되면 액티비트 로딩 속도를 현저하게 저하시킨다는 점. 정답은 별로 없다. 중첩을 없애기 위해 더 많은 고민을 하는 것 말고는
      예시 - "Nested weights are bad for performance"
    • 특정 액티비트들은 너무 많은 View 를 가지는 것도 문제가 된다(로딩 속도 문제). 증권 앱의 경우 어쩔 수 없이 수 많은 TextView 를 가지는 경우가 많아서 골치가 아팠다.
      예시 - XXX.xml has more than 80 views, bad for performance
    • 사용하지 않는 리소스들 – 대규모 앱을 개발하다 보면 디자인 리뉴얼 할 때마다 안쓰는 이미지가 수 없이 생긴다. 이걸 눈으로 찾으려면 엄청난 노가다일텐데 고맙게도 린트에서는 사용되지 않는 리소스를 친절하게 알려준다. 수백 개의 안 쓰는 이미지를 덕분에 제거할 수 있었다.
      예시 - The resource XXX appears to be unused
    • 한 레이아웃에 동일 id 중복 체크
    • Manifest 에 정의 된 것과 다른 레벨의 api 호출 오류
    • 이미지에 대한 대체 텍스트가 없을 경우 경고로 알려줌 - 장애인 차별 방지법 때문이라도 이 경고를 무시하면 안된다.
      예시 - "Missing contentDescription attribute on image"

     

    린트에 대한 보다 자세한 설명은 아래 링크 참조

    Improving Your Code with lint

    댓글 0

Designed by black7375.